Enable hardware breakpoints for gdbserver on Windows
authorHannes Domani <ssbssa@yahoo.de>
Mon, 11 May 2020 17:18:31 +0000 (19:18 +0200)
committerHannes Domani <ssbssa@yahoo.de>
Fri, 15 May 2020 08:55:21 +0000 (10:55 +0200)
When trying to use hardware breakpoints with gdbserver you get this error:

(gdb) hbreak main
Hardware assisted breakpoint 2 at 0x40162d: file gdb-9493.c, line 5.
(gdb) c
Continuing.
Warning:
Cannot insert hardware breakpoint 2.
Could not insert hardware breakpoints:
You may have requested too many hardware breakpoints/watchpoints.

It turns out the respective types just needed to be added to the
appropriate callback functions, because x86_dr_(insert|remove)_watchpoint
already handles them.

gdbserver/ChangeLog:

2020-05-15  Hannes Domani  <ssbssa@yahoo.de>

* win32-i386-low.cc (i386_supports_z_point_type): Handle
Z_PACKET_HW_BP z_type.
(i386_insert_point): Handle raw_bkpt_type type.
(i386_remove_point): Likewise.

gdbserver/ChangeLog
gdbserver/win32-i386-low.cc

index 4853463d05d30a28e53d407f1e16595d8d1bfe91..d2b2444d09be94818683e5e01d33131da03025e8 100644 (file)
@@ -1,3 +1,10 @@
+2020-05-15  Hannes Domani  <ssbssa@yahoo.de>
+
+       * win32-i386-low.cc (i386_supports_z_point_type): Handle
+       Z_PACKET_HW_BP z_type.
+       (i386_insert_point): Handle raw_bkpt_type type.
+       (i386_remove_point): Likewise.
+
 2020-04-30  Hannes Domani  <ssbssa@yahoo.de>
 
        * configure.srv <x86_64-*-mingw*, x86_64-*-cygwin*> (srv_tgtobj):
index 389ec4928478d61371d547940502f5f387eb99ef..410f10a7c265b10688bae027142207bb9853707d 100644 (file)
@@ -162,6 +162,7 @@ i386_supports_z_point_type (char z_type)
 {
   switch (z_type)
     {
+    case Z_PACKET_HW_BP:
     case Z_PACKET_WRITE_WP:
     case Z_PACKET_ACCESS_WP:
       return 1;
@@ -176,6 +177,7 @@ i386_insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
 {
   switch (type)
     {
+    case raw_bkpt_type_hw:
     case raw_bkpt_type_write_wp:
     case raw_bkpt_type_access_wp:
       {
@@ -197,6 +199,7 @@ i386_remove_point (enum raw_bkpt_type type, CORE_ADDR addr,
 {
   switch (type)
     {
+    case raw_bkpt_type_hw:
     case raw_bkpt_type_write_wp:
     case raw_bkpt_type_access_wp:
       {