diff options
author | Joel Brobecker <brobecker@gnat.com> | 2009-01-11 04:13:57 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2009-01-11 04:13:57 +0000 |
commit | 7e63b4e466c57fbcaaf1caa1ca7be1a8ed129934 (patch) | |
tree | 6d31ce1f537c84a533dd8e8c2923f38fed0b1082 /gdb/i386-windows-nat.c | |
parent | 71260a99a510321d8b05bccef2340e4e9fb2a009 (diff) | |
download | gdb-7e63b4e466c57fbcaaf1caa1ca7be1a8ed129934.zip gdb-7e63b4e466c57fbcaaf1caa1ca7be1a8ed129934.tar.gz gdb-7e63b4e466c57fbcaaf1caa1ca7be1a8ed129934.tar.bz2 |
* win32-nat.h: New file.
* win32-nat.c (mappings): Initialize to NULL.
(win32_set_context_register_offsets): New function.
* i386-windows-nat.c: New file.
(mappings): Moved here from win32-nat.c.
(_initialize_i386_windows_nat): New function.
* config/i386/mingw.mh (NATDEPFILES): Add i386-windows-nat.o.
* config/i386/cygwin.mh (NATDEPFILES): Likewise.
Diffstat (limited to 'gdb/i386-windows-nat.c')
-rw-r--r-- | gdb/i386-windows-nat.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/gdb/i386-windows-nat.c b/gdb/i386-windows-nat.c new file mode 100644 index 0000000..a22d6e8 --- /dev/null +++ b/gdb/i386-windows-nat.c @@ -0,0 +1,76 @@ +/* Copyright (C) 2008, 2009 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include "defs.h" +#include "win32-nat.h" + +#include <windows.h> + +#define context_offset(x) ((int)&(((CONTEXT *)NULL)->x)) +static const int mappings[] = +{ + context_offset (Eax), + context_offset (Ecx), + context_offset (Edx), + context_offset (Ebx), + context_offset (Esp), + context_offset (Ebp), + context_offset (Esi), + context_offset (Edi), + context_offset (Eip), + context_offset (EFlags), + context_offset (SegCs), + context_offset (SegSs), + context_offset (SegDs), + context_offset (SegEs), + context_offset (SegFs), + context_offset (SegGs), + context_offset (FloatSave.RegisterArea[0 * 10]), + context_offset (FloatSave.RegisterArea[1 * 10]), + context_offset (FloatSave.RegisterArea[2 * 10]), + context_offset (FloatSave.RegisterArea[3 * 10]), + context_offset (FloatSave.RegisterArea[4 * 10]), + context_offset (FloatSave.RegisterArea[5 * 10]), + context_offset (FloatSave.RegisterArea[6 * 10]), + context_offset (FloatSave.RegisterArea[7 * 10]), + context_offset (FloatSave.ControlWord), + context_offset (FloatSave.StatusWord), + context_offset (FloatSave.TagWord), + context_offset (FloatSave.ErrorSelector), + context_offset (FloatSave.ErrorOffset), + context_offset (FloatSave.DataSelector), + context_offset (FloatSave.DataOffset), + context_offset (FloatSave.ErrorSelector) + /* XMM0-7 */ , + context_offset (ExtendedRegisters[10*16]), + context_offset (ExtendedRegisters[11*16]), + context_offset (ExtendedRegisters[12*16]), + context_offset (ExtendedRegisters[13*16]), + context_offset (ExtendedRegisters[14*16]), + context_offset (ExtendedRegisters[15*16]), + context_offset (ExtendedRegisters[16*16]), + context_offset (ExtendedRegisters[17*16]), + /* MXCSR */ + context_offset (ExtendedRegisters[24]) +}; +#undef context_offset + +void +_initialize_i386_windows_nat (void) +{ + win32_set_context_register_offsets (mappings); +} |