aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/inf-ptrace.c14
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