This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Add Windows x64 SEH unwinder (take 2)
- From: Joel Brobecker <brobecker at adacore dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 9 Jan 2013 14:52:59 +0400
- Subject: Add Windows x64 SEH unwinder (take 2)
Hello,
This patch series adds an unwinder using the native Windows x64 SEH
data. This dramatically improves the behavior as soon as system
calls are involved. For instance, after switching to a different
thread, we now get...
(gdb) bt
#0 0x0000000077a46eba in ntdll!ZwWaitForSingleObject ()
from C:\Windows\system32\ntdll.dll
#1 0x00000000778fb380 in WaitForSingleObjectEx ()
from C:\Windows\system32\kernel32.dll
#2 0x000000000040a7e9 in system__task_primitives__operations__cond_wait ()
#3 0x0000000000407c3b in system__tasking__rendezvous__accept_trivial ()
#4 0x0000000000401f3c in task_switch.callee (<_task>=0x394410)
at task_switch.adb:29
#5 0x0000000000406637 in system__tasking__stages__task_wrapper ()
[...]
... instead of:
#0 0x0000000077a46eba in ntdll!ZwWaitForSingleObject ()
from C:\Windows\system32\ntdll.dll
#1 0x00000000778fb380 in WaitForSingleObjectEx ()
from C:\Windows\system32\kernel32.dll
#2 0x000007fffffdc000 in ?? ()
#3 0x0000000077a266e4 in ntdll!LdrInitializeThunk ()
from C:\Windows\system32\ntdll.dll
#4 0x0000000000000000 in ?? ()