From: Jon TURNEY Date: Wed, 18 Feb 2015 23:13:47 +0000 (+0000) Subject: Retrieve segment registers on Windows amd64 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f0666312fd86272e0234d5f7c92d8f65d5c6505e;p=binutils-gdb.git Retrieve segment registers on Windows amd64 For amd64, CONTEXT_FULL does not contain CONTEXT_SEGMENTS, which seems to be needed to retrieve all the segment registers. Add it explicitly, with a little de-cruftification. The value of the segment registers isn't terribly useful on amd64, but at least this makes the output of 'info registers' correct. Before: (gdb) i r cs ss ds es fs gs cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 After: (gdb) i r cs ss ds es fs gs cs 0x33 51 ss 0x2b 43 ds 0x2b 43 es 0x2b 43 fs 0x53 83 gs 0x2b 43 gdb/ChangeLog 2015-02-27 Jon TURNEY * windows-nat.c (CONTEXT_DEBUGGER): Remove. (CONTEXT_DEBUGGER_DR): Add CONTEXT_SEGMENTS. Incorporate flags from CONTEXT_DEBUGGER. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fac8b37d89d..ff0e72d2aac 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2015-02-27 Jon TURNEY + + * windows-nat.c (CONTEXT_DEBUGGER): Remove. + (CONTEXT_DEBUGGER_DR): Add CONTEXT_SEGMENTS. Incorporate flags + from CONTEXT_DEBUGGER. + 2015-02-26 Doug Evans * gdbtypes.c (internal_type_vptr_fieldno): Add missing call to diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 9c2dca17744..107bdf2bb6a 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -130,7 +130,6 @@ static CONTEXT saved_context; /* Containes the saved context from a enum { FLAG_TRACE_BIT = 0x100, - CONTEXT_DEBUGGER = (CONTEXT_FULL | CONTEXT_FLOATING_POINT) }; #endif @@ -140,8 +139,9 @@ enum #define CONTEXT_EXTENDED_REGISTERS 0 #endif -#define CONTEXT_DEBUGGER_DR CONTEXT_DEBUGGER | CONTEXT_DEBUG_REGISTERS \ - | CONTEXT_EXTENDED_REGISTERS +#define CONTEXT_DEBUGGER_DR CONTEXT_FULL | CONTEXT_FLOATING_POINT \ + | CONTEXT_SEGMENTS | CONTEXT_DEBUG_REGISTERS \ + | CONTEXT_EXTENDED_REGISTERS static uintptr_t dr[8]; static int debug_registers_changed;