]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Enable conditional breakpoints for targets that support software single step in GDBServer
authorAntoine Tremblay <antoine.tremblay@ericsson.com>
Fri, 18 Dec 2015 16:33:59 +0000 (11:33 -0500)
committerAntoine Tremblay <antoine.tremblay@ericsson.com>
Fri, 18 Dec 2015 16:40:36 +0000 (11:40 -0500)
This patch enables support for conditional breakpoints if the target supports
software single step.

This was disabled before as the implementations of software single step were too
simple as discussed in
https://sourceware.org/ml/gdb-patches/2015-04/msg01110.html.

Since these issues are now fixed support can be added back.

New tests passing :
PASS: gdb.base/cond-eval-mode.exp: set breakpoint condition-evaluation
target and related...

No regressions, tested on ubuntu 14.04 ARMv7 and x86.
With gdbserver-{native,extended} / { -marm -mthumb }

gdb/gdbserver/ChangeLog:

* server.c (handle_query): Call target_supports_software_single_step.

gdb/gdbserver/ChangeLog
gdb/gdbserver/server.c

index 607c4bb16e2bdc9ed09698e18021f7c7a9de7843..e38d71d91b2ca748d1d1f7a73c19ef4cad52fac0 100644 (file)
@@ -1,3 +1,7 @@
+2015-12-18  Antoine Tremblay  <antoine.tremblay@ericsson.com>
+
+       * server.c (handle_query): Call target_supports_software_single_step.
+
 2015-12-18  Antoine Tremblay  <antoine.tremblay@ericsson.com>
 
        * linux-low.c (single_step): New function.
index 8f097e51f184e3202135f4f3dfa5b201c670b0d4..b385afb79250975a9f9e430c8437cefd5bc7253a 100644 (file)
@@ -2290,13 +2290,9 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
          strcat (own_buf, ";tracenz+");
        }
 
-      if (target_supports_hardware_single_step ())
+      if (target_supports_hardware_single_step ()
+         || target_supports_software_single_step () )
        {
-         /* Support target-side breakpoint conditions and commands.
-            GDBserver needs to step over the breakpoint if the condition
-            is false.  GDBserver software single step is too simple, so
-            disable conditional breakpoints if the target doesn't have
-            hardware single step.  */
          strcat (own_buf, ";ConditionalBreakpoints+");
        }
       strcat (own_buf, ";BreakpointCommands+");