aboutsummaryrefslogtreecommitdiff
path: root/sim/aarch64/interp.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-12-26 07:05:41 -0500
committerMike Frysinger <vapier@gentoo.org>2015-12-26 07:19:07 -0500
commit0e9672991e9346d5c2cb9cd33e30fb3e573f88b8 (patch)
treeb9a00b51355ac7ebed43ebf97f78b7a373b42936 /sim/aarch64/interp.c
parentf66affe97c40465e70249970b3339cc2f0a40e69 (diff)
downloadfsf-binutils-gdb-0e9672991e9346d5c2cb9cd33e30fb3e573f88b8.zip
fsf-binutils-gdb-0e9672991e9346d5c2cb9cd33e30fb3e573f88b8.tar.gz
fsf-binutils-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/interp.c')
-rw-r--r--sim/aarch64/interp.c9
1 files changed, 5 insertions, 4 deletions
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);