aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/infrun.c11
2 files changed, 11 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5fed053..89072a6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2008-07-12 Vladimir Prus <vladimir@codesourcery.com>
+ * infrun.c (resume): Discard cleanups on early exit path.
+
+2008-07-12 Vladimir Prus <vladimir@codesourcery.com>
+
* infrun.c (normal_stop): For MI, report which threads
were stopped.
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 5473c99..07b34fd 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -969,10 +969,13 @@ a command like `return' or `jump' to continue execution."));
&& sig == TARGET_SIGNAL_0)
{
if (!displaced_step_prepare (inferior_ptid))
- /* Got placed in displaced stepping queue. Will be resumed
- later when all the currently queued displaced stepping
- requests finish. */
- return;
+ {
+ /* Got placed in displaced stepping queue. Will be resumed
+ later when all the currently queued displaced stepping
+ requests finish. */
+ discard_cleanups (old_cleanups);
+ return;
+ }
}
if (step && gdbarch_software_single_step_p (gdbarch))