aboutsummaryrefslogtreecommitdiff
path: root/gdb/infrun.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2009-11-15 20:10:34 +0000
committerPedro Alves <palves@redhat.com>2009-11-15 20:10:34 +0000
commit678229626ec8f1a0d0d5c494335c05e9d0b52832 (patch)
tree50c327ad9c91dcaab7a2e4c49d4b57c31dc9deb2 /gdb/infrun.c
parent56710373a0ab471d0891ad49b5c2a70f53cfc00d (diff)
downloadgdb-678229626ec8f1a0d0d5c494335c05e9d0b52832.zip
gdb-678229626ec8f1a0d0d5c494335c05e9d0b52832.tar.gz
gdb-678229626ec8f1a0d0d5c494335c05e9d0b52832.tar.bz2
* infrun.c (handle_inferior_event): When handling a fork or vfork
event, check if the bpstat causes a stop, instead of if it explains the signal. * breakpoint.c (bpstat_causes_stop): New. * breakpoint.h (bpstat_causes_stop): Declare.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r--gdb/infrun.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c
index c28366f..98e215c 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -2946,7 +2946,11 @@ handle_inferior_event (struct execution_control_state *ecs)
= bpstat_stop_status (get_regcache_aspace (get_current_regcache ()),
stop_pc, ecs->ptid);
- ecs->random_signal = !bpstat_explains_signal (ecs->event_thread->stop_bpstat);
+ /* Note that we're interested in knowing the bpstat actually
+ causes a stop, not just if it may explain the signal.
+ Software watchpoints, for example, always appear in the
+ bpstat. */
+ ecs->random_signal = !bpstat_causes_stop (ecs->event_thread->stop_bpstat);
/* If no catchpoint triggered for this, then keep going. */
if (ecs->random_signal)