| Index: gdb/gdbserver/i386-low.c
|
| diff --git a/gdb/gdbserver/i386-low.c b/gdb/gdbserver/i386-low.c
|
| index 902a9e9156ad323f194b83f9dd39d09786c5f6f5..4eacda08092cd7b4100c214a14b64d75a2d67aeb 100644
|
| --- a/gdb/gdbserver/i386-low.c
|
| +++ b/gdb/gdbserver/i386-low.c
|
| @@ -1,6 +1,6 @@
|
| /* Debug register code for the i386.
|
|
|
| - Copyright (C) 2009-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 2009-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -20,6 +20,7 @@
|
| #include "server.h"
|
| #include "target.h"
|
| #include "i386-low.h"
|
| +#include "break-common.h"
|
|
|
| /* Support for 8-byte wide hw watchpoints. */
|
| #ifndef TARGET_HAS_DR_LEN_8
|
| @@ -27,14 +28,6 @@
|
| #define TARGET_HAS_DR_LEN_8 (sizeof (void *) == 8)
|
| #endif
|
|
|
| -enum target_hw_bp_type
|
| - {
|
| - hw_write = 0, /* Common HW watchpoint */
|
| - hw_read = 1, /* Read HW watchpoint */
|
| - hw_access = 2, /* Access HW watchpoint */
|
| - hw_execute = 3 /* Execute HW breakpoint */
|
| - };
|
| -
|
| /* DR7 Debug Control register fields. */
|
|
|
| /* How many bits to skip in DR7 to get to R/W and LEN fields. */
|
| @@ -243,10 +236,10 @@ Invalid hardware breakpoint type %d in i386_length_and_rw_bits.\n",
|
| return (DR_LEN_2 | rw);
|
| case 4:
|
| return (DR_LEN_4 | rw);
|
| - /* ELSE FALL THROUGH */
|
| case 8:
|
| if (TARGET_HAS_DR_LEN_8)
|
| return (DR_LEN_8 | rw);
|
| + /* ELSE FALL THROUGH */
|
| default:
|
| error ("\
|
| Invalid hardware breakpoint length %d in i386_length_and_rw_bits.\n", len);
|
| @@ -410,6 +403,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 +415,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:
|
|
|