This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]