diff options
author | Mike Frysinger <vapier@gentoo.org> | 2015-12-26 07:05:41 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-12-26 07:19:07 -0500 |
commit | 0e9672991e9346d5c2cb9cd33e30fb3e573f88b8 (patch) | |
tree | b9a00b51355ac7ebed43ebf97f78b7a373b42936 /sim/aarch64 | |
parent | f66affe97c40465e70249970b3339cc2f0a40e69 (diff) | |
download | gdb-0e9672991e9346d5c2cb9cd33e30fb3e573f88b8.zip gdb-0e9672991e9346d5c2cb9cd33e30fb3e573f88b8.tar.gz gdb-0e9672991e9346d5c2cb9cd33e30fb3e573f88b8.tar.bz2 |
sim: standardize sim_create_inferior handling of argv a bit more
For targets that process argv in sim_create_inferior, improve the code:
- provide more details in the comment
- make the check for when to re-init more robust
- clean out legacy sim_copy_argv code
This will be cleaned up more in the future when we have a common inferior
creation function, but at least help new ports get it right until then.
Diffstat (limited to 'sim/aarch64')
-rw-r--r-- | sim/aarch64/ChangeLog | 4 | ||||
-rw-r--r-- | sim/aarch64/interp.c | 9 |
2 files changed, 9 insertions, 4 deletions
diff --git a/sim/aarch64/ChangeLog b/sim/aarch64/ChangeLog index 608a056..cd0cd41 100644 --- a/sim/aarch64/ChangeLog +++ b/sim/aarch64/ChangeLog @@ -1,3 +1,7 @@ +2015-12-26 Mike Frysinger <vapier@gentoo.org> + + * interp.c (sim_create_inferior): Update comment and argv check. + 2015-12-14 Nick Clifton <nickc@redhat.com> * simulator.c (system_get): New function. Provides read diff --git a/sim/aarch64/interp.c b/sim/aarch64/interp.c index 46ff994..d971039 100644 --- a/sim/aarch64/interp.c +++ b/sim/aarch64/interp.c @@ -192,10 +192,11 @@ sim_create_inferior (SIM_DESC sd, struct bfd *abfd, char **argv, char **env) aarch64_set_next_PC (cpu, addr); aarch64_update_PC (cpu); - /* Standalone mode (ie aarch64-elf-run) will take care of the argv - for us in sim_open() -> sim_parse_args(). But in debug mode (i.e. - 'target sim' with `aarch64-...-gdb`), we need to handle it. */ - if (STATE_OPEN_KIND (sd) == SIM_OPEN_DEBUG) + /* Standalone mode (i.e. `run`) will take care of the argv for us in + sim_open() -> sim_parse_args(). But in debug mode (i.e. 'target sim' + with `gdb`), we need to handle it because the user can change the + argv on the fly via gdb's 'run'. */ + if (STATE_PROG_ARGV (sd) != argv) { freeargv (STATE_PROG_ARGV (sd)); STATE_PROG_ARGV (sd) = dupargv (argv); |