diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/inf-ptrace.c | 14 |
2 files changed, 12 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ea1d341..c3303ea 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2013-05-30 Tom Tromey <tromey@redhat.com> + * inf-ptrace.c (inf_ptrace_create_inferior): Unconditionally + call discard_cleanups. + (inf_ptrace_attach): Likewise. + +2013-05-30 Tom Tromey <tromey@redhat.com> + * remote-mips.c (mips_exit_debug): Call do_cleanups on all return paths. (mips_initialize): Likewise. diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c index 27bbf4d..046e0ce 100644 --- a/gdb/inf-ptrace.c +++ b/gdb/inf-ptrace.c @@ -122,20 +122,19 @@ inf_ptrace_create_inferior (struct target_ops *ops, /* Do not change either targets above or the same target if already present. The reason is the target stack is shared across multiple inferiors. */ int ops_already_pushed = target_is_pushed (ops); - struct cleanup *back_to = NULL; + struct cleanup *back_to = make_cleanup (null_cleanup, NULL); if (! ops_already_pushed) { /* Clear possible core file with its process_stratum. */ push_target (ops); - back_to = make_cleanup_unpush_target (ops); + make_cleanup_unpush_target (ops); } pid = fork_inferior (exec_file, allargs, env, inf_ptrace_me, NULL, NULL, NULL, NULL); - if (! ops_already_pushed) - discard_cleanups (back_to); + discard_cleanups (back_to); /* START_INFERIOR_TRAPS_EXPECTED is defined in inferior.h, and will be 1 or 2 depending on whether we're starting without or with a @@ -196,7 +195,7 @@ inf_ptrace_attach (struct target_ops *ops, char *args, int from_tty) /* Do not change either targets above or the same target if already present. The reason is the target stack is shared across multiple inferiors. */ int ops_already_pushed = target_is_pushed (ops); - struct cleanup *back_to = NULL; + struct cleanup *back_to = make_cleanup (null_cleanup, NULL); pid = parse_pid_to_attach (args); @@ -208,7 +207,7 @@ inf_ptrace_attach (struct target_ops *ops, char *args, int from_tty) /* target_pid_to_str already uses the target. Also clear possible core file with its process_stratum. */ push_target (ops); - back_to = make_cleanup_unpush_target (ops); + make_cleanup_unpush_target (ops); } if (from_tty) @@ -243,8 +242,7 @@ inf_ptrace_attach (struct target_ops *ops, char *args, int from_tty) target, it should decorate the ptid later with more info. */ add_thread_silent (inferior_ptid); - if (! ops_already_pushed) - discard_cleanups (back_to); + discard_cleanups (back_to); } #ifdef PT_GET_PROCESS_STATE |