[Bug 7426] New: winedbg is unable to extract callstack from minidump

Wine Bugs wine-bugs at winehq.org
Wed Feb 14 09:44:44 CST 2007


http://bugs.winehq.org/show_bug.cgi?id=7426

           Summary: winedbg is unable to extract callstack from minidump
           Product: Wine
           Version: 0.9.30.
          Platform: Other
        OS/Version: other
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: wine-debug
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: lindevel at gmx.net


When I create a program with MinGW which dumps a minidump, winedbg can't 
extract the callstack from the created dump.


All I get is this:
WineDbg starting on minidump on pid 0008
  mdump2.exe was running on #1 Intel Pentium Pro/II-0.2560 CPU on Windows 2000 
(2195)
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:004012fb ESP:0062feb0 EBP:0062feb8 EFLAGS:00010212(   - 00      - RIA1)
 EAX:00000000 EBX:7b8ab5c8 ECX:7b8ab5c8 EDX:0040130e
 ESI:00401140 EDI:7ffdf000
Stack dump:
0x0062feb0: *** Invalid address 0x0062feb0

Backtrace:
WineDbg starting on pid 0008


This problem can be tested with the sample code from 
http://www.codeproject.com/debug/postmortemdebug_standalone1.asp?df=100&forumid=3419&exp=0&select=1123446


The same happens with following minimalised code-extract:

#include <windows.h>
#include "/usr/include/wine/windows/dbghelp.h"

typedef BOOL (WINAPI *MINIDUMPWRITEDUMP)(HANDLE hProcess, DWORD dwPid, HANDLE 
hFile, MINIDUMP_TYPE DumpType, CONST PMINIDUMP_EXCEPTION_INFORMATION 
ExceptionParam, CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam, CONST 
PMINIDUMP_CALLBACK_INFORMATION CallbackParam );

LONG WINAPI WindowsExceptionFilter(EXCEPTION_POINTERS* pExceptionInfo)
{
	HMODULE hDll = LoadLibrary( "DBGHELP.DLL" );
	MINIDUMPWRITEDUMP pDump = (MINIDUMPWRITEDUMP)GetProcAddress( 
hDll, "MiniDumpWriteDump" );
	HANDLE hFile = CreateFile( "app.exe.mdmp", GENERIC_WRITE, 
FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
	MINIDUMP_EXCEPTION_INFORMATION ExInfo;

	ExInfo.ThreadId = GetCurrentThreadId();
	ExInfo.ExceptionPointers = pExceptionInfo;
	ExInfo.ClientPointers = NULL;
		
	pDump( GetCurrentProcess(), GetCurrentProcessId(), hFile, 
MiniDumpNormal, &ExInfo, NULL, NULL );
	
	return(EXCEPTION_CONTINUE_SEARCH);
}

int main(int argc, char *argv[])
{
	SetUnhandledExceptionFilter(WindowsExceptionFilter);

	*(int*)NULL = 0x1234;

	return 0;
}


I compiled both samples with:
mingw32-g++ mdump.cpp -o mdump.exe


However, when I load a minidump created by Windows XP (Which a user gave me. 
It was not created by my app and I don't know how he created it. Maybe some MS 
library did it...) it seems to work. (It doesn't tell me any function names 
for some reason, but at least it doesn't say "Invalid address".)

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list