This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] Always clear execution_control_state before handling an event.
- From: Pedro Alves <palves at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Mon, 28 May 2012 21:44:22 +0100
- Subject: [PATCH] Always clear execution_control_state before handling an event.
Unlike in long gone past times, nothing in execution_control_state is
supposed to be persistent across events nowadays. Let's clear ecss at
each iteration of wait_for_inferior to make sure we don't end up with
anything stale.
Applied.
gdb/
2012-05-28 Pedro Alves <palves@redhat.com>
* infrun.c (wait_for_inferior): Move ecss and ecs locals to the
block that uses them. Clear ecss before handling each event.
---
gdb/infrun.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 50ad217..45b1fe7 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -2694,8 +2694,6 @@ void
wait_for_inferior (void)
{
struct cleanup *old_cleanups;
- struct execution_control_state ecss;
- struct execution_control_state *ecs;
if (debug_infrun)
fprintf_unfiltered
@@ -2704,13 +2702,14 @@ wait_for_inferior (void)
old_cleanups =
make_cleanup (delete_step_thread_step_resume_breakpoint_cleanup, NULL);
- ecs = &ecss;
- memset (ecs, 0, sizeof (*ecs));
-
while (1)
{
+ struct execution_control_state ecss;
+ struct execution_control_state *ecs = &ecss;
struct cleanup *old_chain;
+ memset (ecs, 0, sizeof (*ecs));
+
overlay_cache_invalid = 1;
if (deprecated_target_wait_hook)