diff options
author | Patrick von Reth <patrick.vonreth@gmail.com> | 2010-03-29 10:15:34 +0200 |
---|---|---|
committer | Ralf Habacker <ralf.habacker@freenet.de> | 2010-03-29 10:15:34 +0200 |
commit | 0958631378dd8d1ef5df9ff965184563b19d242d (patch) | |
tree | bb140f2dd9195e3674c7cd76e2ee55ac0c8f3f91 | |
parent | d5217348517e6b00a04e500ca460daf6cc928cd9 (diff) | |
download | dbus-0958631378dd8d1ef5df9ff965184563b19d242d.tar.gz |
Added x64 and ia64 backtrace support for windows.
-rw-r--r-- | dbus/dbus-sysdeps-win.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c index bba8915f..4b32e092 100644 --- a/dbus/dbus-sysdeps-win.c +++ b/dbus/dbus-sysdeps-win.c @@ -2260,6 +2260,24 @@ static void dump_backtrace_for_thread(HANDLE hThread) sf.AddrPC.Offset = context.Eip; sf.AddrPC.Mode = AddrModeFlat; dwImageType = IMAGE_FILE_MACHINE_I386; +#elif _M_X64 + dwImageType = IMAGE_FILE_MACHINE_AMD64; + sf.AddrPC.Offset = context.Rip; + sf.AddrPC.Mode = AddrModeFlat; + sf.AddrFrame.Offset = context.Rsp; + sf.AddrFrame.Mode = AddrModeFlat; + sf.AddrStack.Offset = context.Rsp; + sf.AddrStack.Mode = AddrModeFlat; +#elif _M_IA64 + dwImageType = IMAGE_FILE_MACHINE_IA64; + sf.AddrPC.Offset = context.StIIP; + sf.AddrPC.Mode = AddrModeFlat; + sf.AddrFrame.Offset = context.IntSp; + sf.AddrFrame.Mode = AddrModeFlat; + sf.AddrBStore.Offset= context.RsBSP; + sf.AddrBStore.Mode = AddrModeFlat; + sf.AddrStack.Offset = context.IntSp; + sf.AddrStack.Mode = AddrModeFlat; #else # error You need to fill in the STACKFRAME structure for your architecture #endif |