aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Tremblay <antoine.tremblay@ericsson.com>2015-12-18 11:33:59 -0500
committerAntoine Tremblay <antoine.tremblay@ericsson.com>2015-12-18 11:40:36 -0500
commitbd2b290956e9a1931cf593b0f2cc934867da1d45 (patch)
treef01694d2421296556305d460ae380bb1aa7ab0df
parent7fe5e27e9d63b065731b1b0b69ffd344942f4f39 (diff)
downloadgdb-bd2b290956e9a1931cf593b0f2cc934867da1d45.zip
gdb-bd2b290956e9a1931cf593b0f2cc934867da1d45.tar.gz
gdb-bd2b290956e9a1931cf593b0f2cc934867da1d45.tar.bz2
Enable conditional breakpoints for targets that support software single step in GDBServer
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.
-rw-r--r--gdb/gdbserver/ChangeLog4
-rw-r--r--gdb/gdbserver/server.c8
2 files changed, 6 insertions, 6 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 607c4bb..e38d71d 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,9 @@
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.
(linux_resume_one_lwp_throw): Call single_step.
(start_step_over): Likewise.
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 8f097e5..b385afb 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -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+");