diff options
author | eager <eager> | 2012-07-19 18:27:17 +0000 |
---|---|---|
committer | eager <eager> | 2012-07-19 18:27:17 +0000 |
commit | e757261d542fa9a156b9f170d23e4b023c1f1937 (patch) | |
tree | 060fa0bf57c89122104a9d2011d0095c179c1f8f /gdb | |
parent | 3715236eef195162825541d11470a1f47552de9e (diff) | |
download | gdb-e757261d542fa9a156b9f170d23e4b023c1f1937.tar.gz |
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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/gdbserver/i386-low.c | 3 | ||||
-rw-r--r-- | gdb/gdbserver/linux-x86-low.c | 19 |
3 files changed, 22 insertions, 8 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 3757add3885..fab5e7cd29b 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -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 diff --git a/gdb/gdbserver/i386-low.c b/gdb/gdbserver/i386-low.c index 902a9e9156a..b47392f8705 100644 --- a/gdb/gdbserver/i386-low.c +++ b/gdb/gdbserver/i386-low.c @@ -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: diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c index 4ea284eebaf..1215bae912c 100644 --- a/gdb/gdbserver/linux-x86-low.c +++ b/gdb/gdbserver/linux-x86-low.c @@ -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: |