WinDbg zeigt nicht nützliche Informationen

Lassen Sie mich zunächst sagen, ich bin ein total WinDbg noob, so könnte dies eine einfache Frage...

Ich habe eine Anwendung ("Anwendung" - Namen geändert zum Schutz der unschuldigen!) ich bin versucht zu Debuggen, weil es eine Ausnahme zu werfen. Dies geschieht nur auf Benutzer-Maschinen - ich habe nicht in der Lage zu reproduzieren, auf meinem Entwicklungsrechner. Also habe ich DebugDiag auf die Benutzer-Maschine und erfasst einen Vollständigen Dump. Dann lud ich den dump in WinDbg und hat eine analyze -v und ein kp zu versuchen, herauszufinden, was Los war... aber keiner von diesen scheinen mir die Informationen, die ich Suche - die Funktion (und hoffentlich auch die Nummer der Zeile) der Zeile, die das problem verursacht... ich glaube, ich habe die symbol Datei geladen wurde, indem Sie den Pfad zu 'MyApp.pdb' in die Symbol-Datei-Pfad:

srv*c:\symcache*http://msdl.microsoft.com/download/symbols;srv*c:\symcache*C:\dev\Customer\MyAppSln\MyApp\Debug 

Erste, hier ist die Ausgabe von kp:

0:004> kp 
ChildEBP RetAddr 
WARNUNG: Stapel entspannen Informationen nicht zur Verfügung. Folgende frames kann wrong. 
0502f474 7c347966 Anwendung!DllMain+0x3e8a6 
0502f4bc 7c3a2448 msvcr71!_nh_malloc(unsigned int size = <Memory access error>, int nhFlag = <Memory access error>)+0x24 [f:\vs70builds\3052\vc\crtbld\crt\src\malloc.c @ 117] 
0502f57c 7c3416b3 msvcp71!std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::_Tidy(bool _Built = <Memory access error>, unsigned int _Newsize = <Memory access error>)+0x45 [f:\vs70builds\3077\vc\crtbld\crt\src\xstring @ 1520] 
0502f610 7c3a32de msvcr71!_heap_alloc(unsigned int size = <Memory access error>)+0xe0 [f:\vs70builds\3052\vc\crtbld\crt\src\malloc.c @ 212] 
0502f620 7c3b3f63 msvcp71!wmemcpy(wchar_t * _S1 = 0x04e463b9 "Ҹ???", wchar_t * _S2 = 0xffffffff "--- memory read error at Adresse 0xffffffff ---", unsigned int _N = 0x4e25212)+0x14 [f:\vs70builds\3077\vc\crtbld\crt\src\wchar.h @ 843] 
0502f640 04e463b9 msvcp71!std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::assign(class std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > * _Right = 0xffffffff, unsigned int _Roff = 0x4e25212, unsigned int _Count = 2)+0x7c [f:\vs70builds\3077\vc\crtbld\crt\src\xstring @ 601] 
0502f770 04df1077 Anwendung!DllMain+0x65329 
0502f824 04e01b35 Anwendung!DllMain+0xffe7 
0502ff08 04dfe034 Anwendung!DllMain+0x20aa5 
0502ff48 04dfde4f Anwendung!DllMain+0x1cfa4 
0502ff88 7648d0e9 Anwendung!DllMain+0x1cdbf 
0502ffc4 773499f9 kernel32!BaseThreadInitThunk+0xe 
0502ffd4 7738198e ntdll!RtlQueryInformationAcl+0x8b 
0502ffec 00000000 ntdll!_RtlUserThreadStart+0x1b 

the line ich bin speziell zu versuchen zu entschlüsseln, ist das 'MyApp!DllMain+0x65329', da dies die Letzte Zeile, die zu sein scheint, ausgeführt wird, und die Fehler, die innerhalb der malloc-Aufruf, das ist offensichtlich, wo die exception wird geworfen. Was mache ich falsch das macht es nur die Anzeige des Modul-und offset-statt der Quelldatei und die Zeilennummer?

Ich bin mir auch nicht sicher, warum der Zeile über der malloc-Aufruf ist wieder in MyApp wieder - vielleicht kann mir jemand erklären, dass auch.

Nur für den Fall, hier ist die Ausgabe von 'analyze-v':

0:004> !analyze-v 
******************************************************************************* 
* * 
* Exceptionanalyse * 
* * 
******************************************************************************* 

*** WARNUNG: kann Nicht überprüfen der Prüfsumme für MyApp.exe 
*** FEHLER: Modul Last abgeschlossen, aber Symbole konnte nicht geladen für MyApp.exe 
*** WARNUNG: kann Nicht überprüfen der Prüfsumme für ThirdPartyDll.dll 
*** ERROR: Symbol-Datei konnte nicht gefunden werden. Defaulted to export symbols for ThirdPartyDll.dll - 
*** WARNUNG: kann Nicht überprüfen der Prüfsumme für mdnsNSP.dll 
*** ERROR: Symbol-Datei konnte nicht gefunden werden. Defaulted to export symbols for mdnsNSP.dll - 
*** ERROR: Symbol-Datei konnte nicht gefunden werden. Defaulted to export symbols for SLC.dll - 

FAULTING_IP: 
MyApp!DllMain+3e8a6 
04e1f936 8b16 mov edx,dword ptr [esi] 

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff) 
ExceptionAddress: 04e1f936 (MyApp!DllMain+0x0003e8a6) 
ExceptionCode: c0000005 (Zugriffsverletzung) 
ExceptionFlags: 00000000 
NumberParameters: 2 
Parameter[0]: 00000000 
Parameter[1]: 00000000 
Versuch zum Lesen von Adresse 00000000 

PROCESS_NAME: MyApp.exe 

ERROR_CODE: (NTSTATUS) 0xc0000005 - Die Anweisung in "0x%08lx" verweist auf Speicher in "0x%08lx". Der Speicher konnte nicht "%s". 

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - Die Anweisung in "0x%08lx" verweist auf Speicher in "0x%08lx". Der Speicher konnte nicht "%s". 

EXCEPTION_PARAMETER1: 00000000 

EXCEPTION_PARAMETER2: 00000000 

READ_ADDRESS: 00000000 

FOLLOWUP_IP: 
msvcr71!_heap_alloc+e0 [f:\vs70builds\3052\vc\crtbld\crt\src\malloc.c @ 212] 
7c3416b3 e88e0c0000 nennen msvcr71!__SEH_epilog (7c342346) 

NTGLOBALFLAG: 0 

APPLICATION_VERIFIER_FLAGS: 0 

LAST_CONTROL_TRANSFER: von 00000000 bis 773bbb33 

FAULTING_THREAD: ffffffff 

BUGCHECK_STR: APPLICATION_FAULT_ACTIONABLE_HEAp_corruption_heap_failure_freelists_corruption_null_pointer_read_shutdown 

PRIMARY_PROBLEM_CLASS: ACTIONABLE_HEAP_CORRUPTION_heap_failure_freelists_corruption_shutdown 

DEFAULT_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_freelists_corruption_shutdown 

STACK_TEXT: 
773bbb33 ntdll!RtlpAllocateHeap+0x7ad 
773a6e0c ntdll!RtlAllocateHeap+0x1e3 
7c3416b3 msvcr71!_heap_alloc+0xe0 


FAULTING_SOURCE_CODE: 
Keine Quelle gefunden für 'f:\vs70builds\3052\vc\crtbld\crt\src\malloc.c' 


SYMBOL_STACK_INDEX: 2 

SYMBOL_NAME: msvcr71!_heap_alloc+e0 

FOLLOWUP_NAME: MachineOwner 

MODULNAME: msvcr71 

IMAGE_NAME: msvcr71.dll 

DEBUG_FLR_IMAGE_TIMESTAMP: 3e561eac 

STACK_COMMAND: dds 7740c078 ; kb 

FAILURE_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_freelists_corruption_SHUTDOWN_c0000005_msvcr71.dll!_heap_alloc 

BUCKET_ID: APPLICATION_FAULT_ACTIONABLE_HEAp_corruption_heap_failure_freelists_corruption_null_pointer_read_shutdown_msvcr71!_heap_alloc+e0 
mögliche Duplikate von How to set up Symbole in WinDbg?

InformationsquelleAutor Michael Bray | 2009-07-31

Schreibe einen Kommentar