2012-07-19 Michael Eager <eager@eagercon.com>

* i386-low.c (Z_packet_to_hw_type): Add Z_PACKET_HW_BP, translate
	to hw_execute.
	* linux-x86-low.c (x86_insert_point, x86_remove_point):
	Call i386_low_insert_watchpoint, i386_low_remove_watchpoint to add/del
	hardware breakpoint.
This commit is contained in:
Michael Eager
2012-07-19 18:27:17 +00:00
parent 90f47860e1
commit 961bd387ba
3 changed files with 22 additions and 8 deletions

View File

@@ -1,3 +1,11 @@
2012-07-19 Michael Eager <eager@eagercon.com>
* i386-low.c (Z_packet_to_hw_type): Add Z_PACKET_HW_BP, translate
to hw_execute.
* linux-x86-low.c (x86_insert_point, x86_remove_point):
Call i386_low_insert_watchpoint, i386_low_remove_watchpoint to add/del
hardware breakpoint.
2012-07-07 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdbserver/linux-low.c (initialize_low): Call

View File

@@ -410,6 +410,7 @@ Invalid value %d of operation in i386_handle_nonaligned_watchpoint.\n",
return retval;
}
#define Z_PACKET_HW_BP '1'
#define Z_PACKET_WRITE_WP '2'
#define Z_PACKET_READ_WP '3'
#define Z_PACKET_ACCESS_WP '4'
@@ -421,6 +422,8 @@ Z_packet_to_hw_type (char type)
{
switch (type)
{
case Z_PACKET_HW_BP:
return hw_execute;
case Z_PACKET_WRITE_WP:
return hw_write;
case Z_PACKET_READ_WP:

View File

@@ -561,7 +561,7 @@ x86_insert_point (char type, CORE_ADDR addr, int len)
struct process_info *proc = current_process ();
switch (type)
{
case '0':
case '0': /* software-breakpoint */
{
int ret;
@@ -572,11 +572,13 @@ x86_insert_point (char type, CORE_ADDR addr, int len)
done_accessing_memory ();
return ret;
}
case '2':
case '3':
case '4':
case '1': /* hardware-breakpoint */
case '2': /* write watchpoint */
case '3': /* read watchpoint */
case '4': /* access watchpoint */
return i386_low_insert_watchpoint (&proc->private->arch_private->debug_reg_state,
type, addr, len);
default:
/* Unsupported. */
return 1;
@@ -589,7 +591,7 @@ x86_remove_point (char type, CORE_ADDR addr, int len)
struct process_info *proc = current_process ();
switch (type)
{
case '0':
case '0': /* software-breakpoint */
{
int ret;
@@ -600,9 +602,10 @@ x86_remove_point (char type, CORE_ADDR addr, int len)
done_accessing_memory ();
return ret;
}
case '2':
case '3':
case '4':
case '1': /* hardware-breakpoint */
case '2': /* write watchpoint */
case '3': /* read watchpoint */
case '4': /* access watchpoint */
return i386_low_remove_watchpoint (&proc->private->arch_private->debug_reg_state,
type, addr, len);
default: