Debug Symbols
-
So, ich hab nun den Crashdump vom Kunden.
Leider kann ich daraus nichts erkennbares ablesen.
Als ich bei mir hier einen Fehler Provoziert habe, hat der Crashdump mir die Funktion, sogar die Zeile des Fehlers angezeigt.
In dem Crashdump vom Kunden steht nichts.
Lediglich:Datei:
PID-6312__W3WP.EXE_-ActiconAppPool-__1st_chance_Process_Shut_Down__full_1e68_2008-04-17_15-49-59-747_18a8.dmp
Dump:
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=7c947c0f edi=fffffffe
eip=7c9485ec esp=0006fe18 ebp=0006ff0c iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
ntdll!KiFastSystemCallRet:
7c9485ec c3 retBei der Zweitletzten Zeile stand bei mir meine Funktion
Hier steht ntdll!KiFastSystemCallRet
Was auch immer das bedeuten mag.
Schätze, in dieser DLL wird wohl kein Fehler vorhanden sein, da ja nur meine Applikation abstürzt.Datei:
PID-6820__DLLHOST.EXE_System_Application__1st_chance_CONTRL_C_OR_Debug_Break__mini_079c_2008-04-21_10-41-57-074_1aa4.dmp
Dump:
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
eax=7ffda000 ebx=00000001 ecx=00000002 edx=00000003 esi=00000004 edi=00000005
eip=7c93a3e1 esp=009dffcc ebp=009dfff4 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000246
Unable to load image C:\WINDOWS\system32\ntdll.dll, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntdll.dll
ntdll!DbgBreakPoint:
7c93a3e1 cc int 3Datei:
PID-8080__INETINFO.EXE__1st_chance_CONTRL_C_OR_Debug_Break__mini_17c8_2008-04-21_10-41-41-886_1f90.dmp
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
eax=7ffdd000 ebx=00000001 ecx=00000002 edx=00000003 esi=00000004 edi=00000005
eip=7c93a3e1 esp=013bffcc ebp=013bfff4 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000246
Unable to load image C:\WINDOWS\system32\ntdll.dll, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntdll.dll
ntdll!DbgBreakPoint:
7c93a3e1 cc int 3Datei:
PID-10148__W3WP.EXE_-DefaultAppPool-__1st_chance_Process_Shut_Down__full_15a0_2008-04-18_20-08-23-877_27a4.dmp
Dump:
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=7c947c0f edi=fffffffe
eip=7c9485ec esp=0006fe18 ebp=0006ff0c iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
ntdll!KiFastSystemCallRet:
7c9485ec c3 retWas fange ich nun mit dem Crashdump an und wie gehts nun weiter?
Kann da jemand etwas rauslesen?Was auch komisch ist:
Das größte Dumpfile hat 21MB..stehen aber nur ein paar Zeilen drin...
-
Wie gesagt:
- Du brauchst die *passende* PDB-Datei für die EXE, die der Kunde hatte!
- Du musst den Pfad zur PDB-Datei richtig einstellen (.sympath+ Pfad_Zur-PDB-Datei)
- Du musst teilweise auch den Pfad zum Image (EXE) richtig einstellen; d.h. Du benötigst auch die passende EXE vom Kunden)Du kannst auch alternativ mir die PDB/EXE/DMP zukommen lassen, dann mach ich es mal hier bei mir...
-
Jochen Kalmbach schrieb:
Lass auf dem System ein Crash-Dump (minidump) erstellen (wenn er sich aufgehängt hat via ADPlus).
Und dann einfach bei Dir lokal den dmp in WinDbg öffnen und den Fehler (oder callstack) anzeigen lassen...!analyze -v
Dazu musst Du aber die gleichen pdb/dlls von Dir haben wie auf dem Zielrechner.
Die habe ich...aber wie und wo führe ich das !analyze -v aus?
-
Es sollte eigentlich auch reichen, die EXE vom Kunden samt dazu passender PDB-Datei sowie die DMP-Datei in ein Verzeichnis zu kippen und die DMP-Datei dann mit VS 2005/2008 zu öffnen und F5 zu drücken. Zumindestens klappt das bei mir immer so.
-
Jochen Kalmbach schrieb:
Wie gesagt:
- Du brauchst die *passende* PDB-Datei für die EXE, die der Kunde hatte!
- Du musst den Pfad zur PDB-Datei richtig einstellen (.sympath+ Pfad_Zur-PDB-Datei)
- Du musst teilweise auch den Pfad zum Image (EXE) richtig einstellen; d.h. Du benötigst auch die passende EXE vom Kunden)Du kannst auch alternativ mir die PDB/EXE/DMP zukommen lassen, dann mach ich es mal hier bei mir...
Naja, es ist keine .exe, es ist eine DLL die im Kontext des IIS läuft.(ISAPI-DLL)quasi wie eine ASP Seite.
Die PDB's...werden die denn auf dem Rechner vom Kunden erstellt?Eigentlich hat de Kunde exact diesselben DLLs und Pdbs wie ich hier, hab sie ihm ja gesendet, da ich meinte er braucht die.
Hab nun meine DLLS und PDBs in den Ordner mit dem DMP Files kopiert und !analyze -v ausgeführt (habs gefunden)Da kommt dann sowas heraus:
0:000> !analyze -v
ERROR: FindPlugIns 8007007b
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************FAULTING_IP:
+0
00000000 ?? ???EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 00000000
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 0FAULTING_THREAD: 00001c14
DEFAULT_BUCKET_ID: STATUS_BREAKPOINT
PROCESS_NAME: w3wp.exe
ERROR_CODE: (NTSTATUS) 0x80000003 - {AUSNAHME} Haltepunkt Im Quellprogramm wurde ein Haltepunkt erreicht.
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
LAST_CONTROL_TRANSFER: from 7c947c1b to 7c9485ec
STACK_TEXT:
0006fe14 7c947c1b 7c8268c3 ffffffff fffffffe ntdll!KiFastSystemCallRet
0006fe18 7c8268c3 ffffffff fffffffe 00000000 ntdll!NtTerminateProcess+0xc
0006ff0c 7c826905 fffffffe 77e8f3b0 ffffffff kernel32!_ExitProcess+0x63
0006ff20 77b9ade4 fffffffe 0006ff5c 77b9aefc kernel32!ExitProcess+0x14
0006ff2c 77b9aefb fffffffe 00000000 fffffffe msvcrt!__crtExitProcess+0x32
0006ff5c 77b9af52 fffffffe 00000000 00000000 msvcrt!_cinit+0xd2
0006ff70 01001a3c fffffffe 00000000 00000000 msvcrt!exit+0x11
0006ffc0 7c82f23b 00000000 00000000 7ffd4000 w3wp!wmainCRTStartup+0x144
0006fff0 00000000 010018f8 00000000 78746341 kernel32!BaseProcessStart+0x23STACK_COMMAND: ~0s; .ecxr ; kb
FOLLOWUP_IP:
msvcrt!__crtExitProcess+32
77b9ade4 cc int 3SYMBOL_STACK_INDEX: 4
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: msvcrt
IMAGE_NAME: msvcrt.dll
DEBUG_FLR_IMAGE_TIMESTAMP: 45d71ff0
PRIMARY_PROBLEM_CLASS: STATUS_BREAKPOINT
BUGCHECK_STR: APPLICATION_FAULT_STATUS_BREAKPOINT
SYMBOL_NAME: msvcrt!__crtExitProcess+32
FAILURE_BUCKET_ID: APPLICATION_FAULT_STATUS_BREAKPOINT_msvcrt!__crtExitProcess+32
BUCKET_ID: APPLICATION_FAULT_STATUS_BREAKPOINT_msvcrt!__crtExitProcess+32
Followup: MachineOwner
---------
-
Lade doch mal die Dump Datei ins VS und drücke F5. Was siehtst Du dann?
Öffne das Debug -> Modules Fenster und schau nach ob alle kritischen Symboldateien geladen wurden.
-
Also es kommt zB. daß für inetinfo.exe (Das ist der IIS-Webserver) Keine Debuginformationen gefunden werden konnten.
Danach kommt das hier:PID-8080__INETINFO.EXE__1st_chance_CONTRL_C_OR_Debug_Break__mini_17c8_2008-04-21_10-41-41-886_1f90.dmp hat einen Haltepunkt ausgelöst.
Und dann:
Es sind keine Symbole für Aufruflistenrahmen geladen. Der Quellcode kann nicht angezeigt werden.
Im Module Fenster kommt ein rotes Ausrufezeichen bei xpsp2res.dll und bei anderen DMP Files noch viele andere.
xpsp2res.dll *C:\WINDOWS\system32\xpsp2res.dll N/A N/A Es konnte keine übereinstimmende Binärdatei gefunden werden. 15 5.02.3790.3959 17.02.2007 07:35 00800000-00AD9000* PID-10148__W3WP.EXE_-DefaultAppPool-__1st_chance_Process_Shut_Down__full_15a0_2008-04-18_20-08-23-877_27a4.dmp: Systemeigen
Edit. Es ist bei jeder DLL im Module Fenster angegeben, daß keine Binärdateien gefunden werden konnten
-
Also ich hab exakt diesselben DLLs und PDB Files wie der Kunde, trotzdem kann er die Symbole nicht laden.
Im windbg.exe habe ich als Symbolpfad den MS-Server angegeben.
Der Kunde hat W200K Server ich W XP Prof.
Könnte es daran liegen?
Außerdem hat es natürlich nen anderen Webserver (IIS6) während ich hier nur IIS 5.1 habe..macht das was?
-
Entscheidend ist IMHO der Callstack.
Vermutlich läuft Deine Applikation auf einen INT 3.Hast Du einen Symbolserver definiert? Dann sollte er auch Symbole des IIS finden.
-
Den Symboslerver von MS habe ich aktiviert...was ist ein INT3?
Ich habe natürlich auch andere Kunden bei denen läufts auch einwandfrei....
-
Mondmann schrieb:
Den Symboslerver von MS habe ich aktiviert...was ist ein INT3?
Breakpoint...
Mondmann schrieb:
Ich habe natürlich auch andere Kunden bei denen läufts auch einwandfrei....
Auf dem Rechner läuft so viel (Schrott); siehe "lm"... da wundert es mich nicht, dass es abstürzt... ich würde sogar auch "kein Speicher" tippen, da der Speicherbereich durch die DLLs so zugemüllt ist...
0:080> lm start end module name 00c90000 00f69000 xpsp2res (deferred) 01000000 01006000 inetinfo # (pdb symbols) 01aa0000 01ab9000 odbcint (deferred) 01b00000 01b05000 lisfecnv (deferred) 01b10000 01b75000 msvcp60 (deferred) 01b80000 01c4e000 reapi T (no symbols) 01c50000 01c64000 gwart (deferred) 071d0000 071d7000 lonsint (deferred) 073e0000 0743b000 hnetcfg (deferred) 077c0000 077c9000 letadata (deferred) 07d20000 07d29000 normaliz (deferred) 08b10000 08b33000 drviis (no symbols) 08d70000 08d85000 msgtrack (deferred) 08da0000 08dab000 onsubmit (deferred) 08db0000 08dc7000 MiscAt T (no symbols) 09070000 090e5000 phatcat (no symbols) 092b0000 092bd000 e2kdsn (deferred) 096c0000 096e5000 exps (deferred) 09700000 0972e000 exsmime (deferred) 097e0000 09816000 msgfilter (deferred) 098c0000 09955000 MSExchange_UceContentFilter T (no symbols) 10000000 10053000 resvc T (no symbols) 45e00000 45e45000 iertutil (deferred) 46570000 4663f000 wininet (deferred) 46690000 467b7000 urlmon (deferred) 4a380000 4a40f000 wzcsvc (deferred) 4b180000 4b287000 esent (deferred) 4bb40000 4bb4f000 fcachdll T (no symbols) 4bdb0000 4bdbd000 ntfsdrv (deferred) 4c000000 4c03d000 odbc32 (deferred) 4e7d0000 4e82c000 winhttp (deferred) 4f170000 4f1f2000 smtpsvc T (no symbols) 56f50000 56f61000 admwprox (deferred) 57590000 575d0000 infocomm T (no symbols) 59870000 59881000 xlsasink (deferred) 598a0000 598c0000 turflist (deferred) 598c0000 598cb000 protolog (deferred) 59940000 5995a000 peexch50 (deferred) 5a470000 5a482000 coadmin T (no symbols) 5b690000 5b69e000 svcext (deferred) 5b850000 5b856000 staxmem (deferred) 5b900000 5b98d000 vssapi (deferred) 5c900000 5c939000 seo (deferred) 5d080000 5d086000 rwnh (deferred) 5d810000 5d815000 rpcref (deferred) 5ffd0000 60112000 iiscfg (deferred) 61620000 61631000 iismap (deferred) 61730000 61741000 wamreg (deferred) 618d0000 618d9000 iisif T (no symbols) 618e0000 6191a000 protomsg (deferred) 61920000 61933000 pop3svc (deferred) 61940000 61949000 pop3be (deferred) 619a0000 619c4000 iisproto (deferred) 619d0000 619da000 febecfg (deferred) 61f90000 62024000 phatq T (no symbols) 62030000 6214a000 tranmsg T (no symbols) 62200000 6223c000 metadata (deferred) 62290000 62298000 ifsproxy T (no symbols) 62c00000 62c12000 mdbevent (deferred) 62c30000 62c44000 exosal (deferred) 62e90000 62f2c000 dsaccess T (no symbols) 62f30000 62fe8000 epoxy T (no symbols) 62ff0000 63040000 exchmem (deferred) 63040000 6304c000 pttrace T (no symbols) 64020000 64028000 iscomlog (deferred) 64030000 64040000 isatq T (no symbols) 648b0000 648dd000 iisutil (deferred) 64960000 64987000 iisrtl (deferred) 64a00000 64a16000 iislog (deferred) 64ba0000 64ba9000 iisadmin T (no symbols) 679c0000 679e0000 lisrtl T (no symbols) 68000000 68035000 rsaenh (deferred) 68590000 685cf000 lnfocomm T (no symbols) 68620000 68632000 lsatq T (no symbols) 694f0000 69514000 ftpsvc2 T (no symbols) 69720000 6972c000 exstrace T (no symbols) 6c8c0000 6c8d5000 mailmsg (deferred) 6d790000 6d838000 dbghelp (deferred) 718f0000 718f8000 wshtcpip (deferred) 71930000 71972000 mswsock T (no symbols) 719c0000 719ca000 wsock32 (deferred) 719e0000 719f1000 mpr (deferred) 71a00000 71a08000 ws2help (deferred) 71a10000 71a27000 ws2_32 T (no symbols) 71a50000 71aa7000 netapi32 (deferred) 71ab0000 71b08000 kerberos (deferred) 71d80000 71d84000 security (deferred) 72320000 72326000 ntlsapi (deferred) 72ec0000 72ece000 wzcsapi (deferred) 73ec0000 73ec5000 icmp (deferred) 74420000 744b3000 mlang (deferred) 744c0000 7477e000 msi (deferred) 74cc0000 74cd2000 clusapi (deferred) 75c80000 75d3e000 sxs (deferred) 76080000 76092000 msasn1 (deferred) 760a0000 76135000 crypt32 (deferred) 76180000 7619d000 imm32 (deferred) 761a0000 761ea000 comdlg32 (deferred) 76490000 76599000 setupapi (deferred) 765d0000 765dc000 cryptdll (deferred) 765e0000 765f4000 ntdsapi (deferred) 76640000 76667000 schannel (deferred) 76810000 768d4000 userenv (deferred) 76970000 76988000 atl (deferred) 76990000 769be000 winmm (deferred) 76a60000 76a6b000 psapi (deferred) 76a70000 76a9f000 credui (deferred) 76aa0000 76acb000 wintrust (deferred) 76b00000 76b28000 imagehlp (deferred) 76b30000 76b44000 authz (deferred) 76bb0000 76bb5000 wmi (deferred) 76bc0000 76bd9000 mprapi (deferred) 76be0000 76bfa000 iphlpapi (deferred) 76c00000 76c1f000 dhcpcsvc (deferred) 76cb0000 76cd8000 adsldpc (deferred) 76ce0000 76d15000 activeds (deferred) 76d20000 76d2c000 rtutils (deferred) 76d30000 76d42000 rasman (deferred) 76d50000 76d7f000 tapi32 (deferred) 76d80000 76dbf000 rasapi32 (deferred) 76dc0000 76deb000 dnsapi (deferred) 76df0000 76df8000 wtsapi32 (deferred) 76e00000 76e2f000 wldap32 T (no symbols) 76e40000 76e53000 secur32 (deferred) 76e60000 76e67000 winrnr (deferred) 76e70000 76e75000 rasadhlp (deferred) 76f00000 77093000 comres (deferred) 770a0000 77265000 netshell (deferred) 77340000 77443000 comctl32 (deferred) 774f0000 77629000 ole32 T (no symbols) 77630000 776b3000 clbcatq (deferred) 776c0000 77702000 netman (deferred) 77790000 777b1000 ntmarta (deferred) 779b0000 779c1000 winsta (deferred) 77b60000 77b68000 version (deferred) 77b70000 77bca000 msvcrt T (no symbols) 77bd0000 77c18000 gdi32 (deferred) 77c20000 77cbf000 rpcrt4 (pdb symbols) 77cd0000 77d5b000 oleaut32 (deferred) 77d70000 77e07000 comctl32_77d70000 (deferred) 77e20000 77eb2000 user32 (pdb symbols) 77ec0000 77f12000 shlwapi (deferred) 77f30000 77fdb000 advapi32 T (no symbols) 7c800000 7c915000 kernel32 (pdb symbols) 7c920000 7c9e6000 ntdll T (no symbols) 7c9f0000 7d1f9000 shell32 (deferred) 7e020000 7e02f000 samlib (deferred)