2008-11-05 99 views
4

我有我們的應用程序之一崩潰的小型轉儲文件。這是一款32位本機應用程序,它在64位Windows上運行。WinDbg,從32位本地應用程序崩潰在64位Windows上的小型轉儲將不會加載系統DLL的符號

如果我將minidump文件加載到WinDbg中,WinDbg將不加載系統DLL的符號。我已經正確配置了我的符號路徑:

_NT_SYMBOL_PATH=SRV*C:\WebSymbols*http://msdl.microsoft.com/download/symbols 

...因爲WinDbg正確加載在32位Windows上創建的小型轉儲符號。它只是不會加載SysWOW64目錄中DLL的符號。

我已經在64位Windows 2008上試過了32位Windows 2003上的32位WinDbg(來自調試工具6.9)和64位WinDbg(也來自調試工具6.9)。兩者都未能加載符號。這是從32位WinDbg:

0:014> !sym noisy 
noisy mode - symbol prompts on 
0:014> .reload 
.................................................................................... 
Loading unloaded module list 
.. 
SYMSRV: C:\WebSymbols\ntdll.dll\48E714D0170000\ntdll.dll not found 
SYMSRV: http://msdl.microsoft.com/download/symbols/ntdll.dll/48E714D0170000/ntdll.dll not found 
DBGENG: C:\Windows\SysWOW64\ntdll.dll - Couldn't map image from disk. 
Unable to load image C:\Windows\SysWOW64\ntdll.dll, Win32 error 0n2 
DBGENG: ntdll.dll - Partial symbol image load missing image info 
DBGHELP: Module is not fully loaded into memory. 
DBGHELP: Searching for symbols using debugger-provided data. 
SYMSRV: C:\WebSymbols\wntdll.pdb\6686D0C5D0554E14953396093DA218A92\wntdll.pdb not found 
SYMSRV: http://msdl.microsoft.com/download/symbols/wntdll.pdb/6686D0C5D0554E14953396093DA218A92/wntdll.pdb not found 
DBGHELP: wntdll.pdb - file not found 
*** WARNING: Unable to verify timestamp for ntdll.dll 
*** ERROR: Module load completed but symbols could not be loaded for ntdll.dll 
DBGHELP: ntdll - no symbols loaded 
SYMSRV: C:\WebSymbols\kernel32.dll\48E7156Cf0000\kernel32.dll not found 
SYMSRV: http://msdl.microsoft.com/download/symbols/kernel32.dll/48E7156Cf0000/kernel32.dll not found 
DBGENG: C:\Windows\SysWOW64\kernel32.dll - Couldn't map image from disk. 
Unable to load image C:\Windows\SysWOW64\kernel32.dll, Win32 error 0n2 
DBGENG: kernel32.dll - Partial symbol image load missing image info 
DBGHELP: Module is not fully loaded into memory. 
DBGHELP: Searching for symbols using debugger-provided data. 
SYMSRV: C:\WebSymbols\wkernel32.pdb\B0C3B36CC7EF4F3E9C168E186A5A6FEB2\wkernel32.pdb not found 
SYMSRV: http://msdl.microsoft.com/download/symbols/wkernel32.pdb/B0C3B36CC7EF4F3E9C168E186A5A6FEB2/wkernel32.pdb not found 
DBGHELP: wkernel32.pdb - file not found 
*** WARNING: Unable to verify timestamp for kernel32.dll 
*** ERROR: Module load completed but symbols could not be loaded for kernel32.dll 
DBGHELP: kernel32 - no symbols loaded 
SYMSRV: C:\WebSymbols\KERNELBASE.dll\48E7156D5a000\KERNELBASE.dll not found 
SYMSRV: http://msdl.microsoft.com/download/symbols/KERNELBASE.dll/48E7156D5a000/KERNELBASE.dll not found 
DBGENG: C:\Windows\SysWOW64\KERNELBASE.dll - Couldn't map image from disk. 
DBGENG: KERNELBASE.dll - Partial symbol image load missing image info 
DBGHELP: Module is not fully loaded into memory. 
DBGHELP: Searching for symbols using debugger-provided data. 
SYMSRV: C:\WebSymbols\wkernelbase.pdb\A8683F0C515F469B833E3FA562E0DB251\wkernelbase.pdb not found 
SYMSRV: http://msdl.microsoft.com/download/symbols/wkernelbase.pdb/A8683F0C515F469B833E3FA562E0DB251/wkernelbase.pdb not found 
DBGHELP: wkernelbase.pdb - file not found 
*** WARNING: Unable to verify timestamp for KERNELBASE.dll 
*** ERROR: Module load completed but symbols could not be loaded for KERNELBASE.dll 
DBGHELP: KERNELBASE - no symbols loaded

任何想法?這些符號僅在微軟的符號服務器上不可用?

回答

4

您是在32位或64位系統上調試,還是在32位或64位版本的WinDBG上進行調試?通常,您必須在相同的架構包調試你把轉儲:

http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

「調試工具爲Windows的32位版本是最好的選擇,除非你在調試應用程序在64位處理器上,在這種情況下,你應該使用64位軟件包。「

而且,看看這篇文章,他正在調試的64位平臺上運行32位應用程序:

http://blogs.msdn.com/alejacma/archive/2008/07/18/How-to-use-Windbg-to-debug-a-dump-of-a-32bit-.NET-app-running-on-a-x64-machine.aspx

+1

這是一個本地應用程序,所以上一篇文章沒有多大用處。 – 2008-11-05 16:20:59

相關問題