This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Retrieve segment registers on Windows amd64
- From: Joel Brobecker <brobecke at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 27 Feb 2015 08:46:28 -0000
- Subject: [binutils-gdb] Retrieve segment registers on Windows amd64
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f0666312fd86272e0234d5f7c92d8f65d5c6505e
commit f0666312fd86272e0234d5f7c92d8f65d5c6505e
Author: Jon TURNEY <jon.turney@dronecode.org.uk>
Date: Wed Feb 18 23:13:47 2015 +0000
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 <jon.turney@dronecode.org.uk>
* windows-nat.c (CONTEXT_DEBUGGER): Remove.
(CONTEXT_DEBUGGER_DR): Add CONTEXT_SEGMENTS. Incorporate flags
from CONTEXT_DEBUGGER.
Diff:
---
gdb/ChangeLog | 6 ++++++
gdb/windows-nat.c | 6 +++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fac8b37..ff0e72d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-27 Jon TURNEY <jon.turney@dronecode.org.uk>
+
+ * windows-nat.c (CONTEXT_DEBUGGER): Remove.
+ (CONTEXT_DEBUGGER_DR): Add CONTEXT_SEGMENTS. Incorporate flags
+ from CONTEXT_DEBUGGER.
+
2015-02-26 Doug Evans <dje@google.com>
* gdbtypes.c (internal_type_vptr_fieldno): Add missing call to
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 9c2dca1..107bdf2 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;