From 0958631378dd8d1ef5df9ff965184563b19d242d Mon Sep 17 00:00:00 2001 From: Patrick von Reth Date: Mon, 29 Mar 2010 10:15:34 +0200 Subject: [PATCH] Added x64 and ia64 backtrace support for windows. --- dbus/dbus-sysdeps-win.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 -- 2.47.3