From: Patrick von Reth Date: Mon, 29 Mar 2010 08:15:34 +0000 (+0200) Subject: Added x64 and ia64 backtrace support for windows. X-Git-Tag: dbus-1.3.1~70 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0958631378dd8d1ef5df9ff965184563b19d242d;p=thirdparty%2Fdbus.git Added x64 and ia64 backtrace support for windows. --- diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c index bba8915f1..4b32e0929 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