From 443a8bb734664a205ddd20c8f87a5d4e09d7bd4b Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Sat, 25 Jul 2015 10:30:31 +0200 Subject: [PATCH] Fix Windows core dump. Stack trace was broken. --- src/win32/debug.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/win32/debug.c b/src/win32/debug.c index fd334e6c8..7c262941c 100644 --- a/src/win32/debug.c +++ b/src/win32/debug.c @@ -58,16 +58,19 @@ __inline char *StackTrace(EXCEPTION_POINTERS *e) char curmodule[32]; DWORD symOptions, dwDisp, frame; HANDLE hProcess = GetCurrentProcess(); - IMAGEHLP_SYMBOL *pSym = malloc(sizeof(IMAGEHLP_SYMBOL)+500); + IMAGEHLP_SYMBOL *pSym = MyMallocEx(sizeof(IMAGEHLP_SYMBOL)+500); IMAGEHLP_LINE pLine; IMAGEHLP_MODULE pMod; STACKFRAME Stack; /* Load the stack information */ + memset(&Stack, 0, sizeof(Stack)); Stack.AddrPC.Offset = e->ContextRecord->Eip; Stack.AddrPC.Mode = AddrModeFlat; Stack.AddrFrame.Offset = e->ContextRecord->Ebp; Stack.AddrFrame.Mode = AddrModeFlat; + Stack.AddrStack.Offset = e->ContextRecord->Esp; + Stack.AddrStack.Mode = AddrModeFlat; if (VerInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) hProcess = (HANDLE)GetCurrentProcessId(); else