This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] infrun.c (handle_signal_stop): Test for TARGET_WAITKIND_STOPPED
- From: Doug Evans <xdje42 at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 27 Feb 2014 23:07:10 -0500
- Subject: [PATCH] infrun.c (handle_signal_stop): Test for TARGET_WAITKIND_STOPPED
- Authentication-results: sourceware.org; auth=none
Hi.
This patch seems obvious to me, but maybe I'm missing something.
There's no need to test whether ecs->ws.kind is T_W_S.
Instead, this patch turns it into an assert.
Regression tested on amd64-linux.
2014-02-27 Doug Evans <xdje42@gmail.com>
* infrun.c (handle_signal_stop): Replace test for
TARGET_WAITKIND_STOPPED with an assert.
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 042d5fa..c57c6b3 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -3781,22 +3781,20 @@ handle_signal_stop (struct execution_control_state *ecs)
enum stop_kind stop_soon;
int random_signal;
- if (ecs->ws.kind == TARGET_WAITKIND_STOPPED)
- {
- /* Do we need to clean up the state of a thread that has
- completed a displaced single-step? (Doing so usually affects
- the PC, so do it here, before we set stop_pc.) */
- displaced_step_fixup (ecs->ptid,
- ecs->event_thread->suspend.stop_signal);
-
- /* If we either finished a single-step or hit a breakpoint, but
- the user wanted this thread to be stopped, pretend we got a
- SIG0 (generic unsignaled stop). */
-
- if (ecs->event_thread->stop_requested
- && ecs->event_thread->suspend.stop_signal == GDB_SIGNAL_TRAP)
- ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_0;
- }
+ gdb_assert (ecs->ws.kind == TARGET_WAITKIND_STOPPED);
+
+ /* Do we need to clean up the state of a thread that has
+ completed a displaced single-step? (Doing so usually affects
+ the PC, so do it here, before we set stop_pc.) */
+ displaced_step_fixup (ecs->ptid,
+ ecs->event_thread->suspend.stop_signal);
+
+ /* If we either finished a single-step or hit a breakpoint, but
+ the user wanted this thread to be stopped, pretend we got a
+ SIG0 (generic unsignaled stop). */
+ if (ecs->event_thread->stop_requested
+ && ecs->event_thread->suspend.stop_signal == GDB_SIGNAL_TRAP)
+ ecs->event_thread->suspend.stop_signal = GDB_SIGNAL_0;
stop_pc = regcache_read_pc (get_thread_regcache (ecs->ptid));