Enable hardware breakpoints for gdbserver on Windows

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.
This commit is contained in:
Hannes Domani 2020-05-11 19:18:31 +02:00
parent 2a50b40146
commit 013707794a
2 changed files with 10 additions and 0 deletions

View 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):

View 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:
{