From: "Pierre Muller" <pierre.muller@ics-cnrs.unistra.fr>
To: <gdb-patches@sourceware.org>
Subject: [RFA/Windows] Change type of handler field of current_seh in windows-tdep.c
Date: Mon, 19 Apr 2010 08:39:00 -0000 [thread overview]
Message-ID: <000c01cadf9b$dad07560$90716020$@muller@ics-cnrs.unistra.fr> (raw)
In the newly added convenience variable $_tlb for
Windows OS executables, you can see the Structured Exception Handling
list.
This is current_seh field:
(top-gdb) start
Temporary breakpoint 3 at 0x40105c: file ../../src/gdb/gdb.c, line 26.
Starting program: /usr/local/src/gdbcvs/build-norm/gdb/gdb.exe
[New Thread 5532.0xbfc]
[New Thread 5532.0x824]
Temporary breakpoint 3, main (argc=1, argv=0x1de26a8)
at ../../src/gdb/gdb.c:26
26 {
(top-gdb) p *$_tlb.current_seh
$1 = {next_seh = 0x15dffe0, handler = 0x61018970}
(top-gdb) p *$_tlb.current_seh.next_seh
$2 = {next_seh = 0xffffffff, handler = 0x7c839ad8}
(top-gdb)
After this patch, the handler field also displays the
function corresponding to that pointer.
(top-gdb) p *$_tlb.current_seh
$2 = {next_seh = 0x15dffe0,
handler = 0x61018970 <_cygtls::handle_exceptions(_EXCEPTION_RECORD*,
_exceptio
n_list*, _CONTEXT*, void*)>}
(top-gdb) p *$_tlb.current_seh .next_seh
$3 = {next_seh = 0xffffffff, handler = 0x7c839ad8 <ValidateLocale+688>}
This make it much more readable, no?
OK to install?
Pierre Muller
2010-04-19 Pierre Muller <muller@ics.u-strasbg.fr>
* windows-tdep.c (windows_get_tlb_type): Change current_seh.handler
type to void function.
Index: windows-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/windows-tdep.c,v
retrieving revision 1.6
diff -u -p -r1.6 windows-tdep.c
--- windows-tdep.c 16 Apr 2010 07:49:35 -0000 1.6
+++ windows-tdep.c 19 Apr 2010 07:57:53 -0000
@@ -102,6 +102,7 @@ windows_get_tlb_type (struct gdbarch *gd
struct type *peb_type, *peb_ptr_type, *list_type, *list_ptr_type;
struct type *module_list_ptr_type;
struct type *tib_type, *seh_type, *tib_ptr_type, *seh_ptr_type;
+ struct type *seh_handler_type, *seh_handler_ptr_type;
dword_ptr_type = arch_integer_type (gdbarch, gdbarch_ptr_bit (gdbarch),
1, "DWORD_PTR");
@@ -125,6 +126,13 @@ windows_get_tlb_type (struct gdbarch *gd
/* Structured Exception Handler */
+ seh_handler_type = arch_type (gdbarch, TYPE_CODE_FUNC, 0, NULL);
+ TYPE_TARGET_TYPE (seh_handler_type) = builtin_type
(gdbarch)->builtin_void;
+
+ seh_handler_ptr_type = arch_type (gdbarch, TYPE_CODE_PTR,
+ TYPE_LENGTH (void_ptr_type), NULL);
+ TYPE_TARGET_TYPE (seh_handler_ptr_type) = seh_handler_type;
+
seh_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
TYPE_NAME (seh_type) = xstrdup ("seh");
@@ -133,7 +141,7 @@ windows_get_tlb_type (struct gdbarch *gd
TYPE_TARGET_TYPE (seh_ptr_type) = seh_type;
append_composite_type_field (seh_type, "next_seh", seh_ptr_type);
- append_composite_type_field (seh_type, "handler", void_ptr_type);
+ append_composite_type_field (seh_type, "handler", seh_handler_ptr_type);
/* struct _PEB_LDR_DATA */
peb_ldr_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
next reply other threads:[~2010-04-19 8:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-19 8:39 Pierre Muller [this message]
2010-04-19 18:15 ` Pedro Alves
2010-04-19 23:14 ` [RFA/Windows-v2] " Pierre Muller
2010-04-19 23:36 ` Pedro Alves
2010-04-19 23:55 ` Pierre Muller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000c01cadf9b$dad07560$90716020$@muller@ics-cnrs.unistra.fr' \
--to=pierre.muller@ics-cnrs.unistra.fr \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox