This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH/RFC] Signals & single-stepping
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: gdb-patches at sourceware dot org
- Date: Wed, 30 Sep 2009 16:40:57 +0200 (CEST)
- Subject: [PATCH/RFC] Signals & single-stepping
A while ago Daniel made a change to infcmd.c which broke hitting
breakpoints in signal handlers while single-stepping on OpenBSD (and
probably other ptrace-based native targets):
2009-01-20 Daniel Jacobowitz <dan@codesourcery.com>
PR gdb/9346
* infcmd.c (signal_command): Do not specify a resume PC.
The problem is that breakpoints are removed for single-stepping. So
the diff below fixes things. Now it isn't clear to me if this
approach doesn't reintroduce the problem from the PR that Daniel tried
to fix.
Comments?
Index: infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.410
diff -u -p -r1.410 infrun.c
--- infrun.c 29 Sep 2009 00:53:04 -0000 1.410
+++ infrun.c 30 Sep 2009 12:55:46 -0000
@@ -1604,6 +1604,11 @@ proceed (CORE_ADDR addr, enum target_sig
else if (!signal_program[tp->stop_signal])
tp->stop_signal = TARGET_SIGNAL_0;
+ if (tp->stop_signal != TARGET_SIGNAL_0) {
+ tp->trap_expected = 0;
+ insert_breakpoints ();
+ }
+
annotate_starting ();
/* Make sure that output from GDB appears before output from the