Windbg中"Your debugger is not using the correct symbols"问题解决方法
lkd> .sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols //[注意:C:\Symbols更改你机器上符号目录]
Symbol search path is: SRV*D:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols
lkd> !sym noisy
noisy mode - symbol prompts on
lkd> !lmi nt
Loaded Module Info: [nt]
Module: ntkrnlpa
Base Address: 804d8000
Image Name: ntkrnlpa.exe
Machine Type: 332 (I386)
Time Stamp: 45e53f9c Wed Feb 28 16:38:52 2007
Size: 1f6400
CheckSum: 1facf5
Characteristics: 12e
Debug Data Dirs: Type Size VA Pointer
CODEVIEW 25, 9540, 9540 RSDS - GUID: {F612363D-B38C-423C-B085-59DDBCA9F2F7}
Age: 1, Pdb: ntkrnlpa.pdb
Image Type: MEMORY - Image read successfully from loaded memory.
Symbol Type: EXPORT - PDB not found
Load Report: export symbols
lkd> .reload /f nt
SYMSRV: WinInet Interface using proxy server: 202.117.54.197:8080
SYMSRV: ntkrnlpa.pdb from http://msdl.microsoft.com/download/symbols: 394365 bytes copied
DBGHELP: nt - public symbols
D:\WINDOWS\Symbols\ntkrnlpa.pdb\F612363DB38C423CB08559DDBCA9F2F71\ntkrnlpa.pdb
至此修复完毕,下面一测试发现确实好了!哈哈!from Internet for Internet!希望对大家有所帮助!
lkd> !peb
PEB at 7ffde000
InheritedAddressSpace: No
ReadImageFileExecOptions: No
BeingDebugged: No
ImageBaseAddress: 01000000
Ldr 001a1e90
Ldr.Initialized: Yes
......................................................................ok
随着硬件越来越便宜,为了能够识别大于4G的内存,越来越多的电脑使用64位的操作系统,然后现在大多数的软件还是32位的,64位的系统使用wow64来帮助运行32位的程序。如果一个64位系统上,32位程序出现crash,得到一个dump文件,如果不进行转换是不能直接用windbg分析的。下面介绍如何处理这样一个dump文件。
首先,我们使用windbg打开dump文件。这时候如果直接输入!analyze -v ,得到的堆栈结果肯定是看不到想看的结果的。
其次,加载wow64exts模块,因为需要这个模块帮助把64位的dump,转换成32位的dump。输入 .load wow64exts
再次,进行转换。输入!sw
最后,按照分析32位dump文件的方法,分析这个dump。
以上,希望可以帮到你。
-------------------------------------------------------------------------------------------
客户提交一个dump文件,WinDbg加载时出现大量WARNING,加载对应版本的SOS后执行相应命令提示"SOS does not support the current target architecture"。
原因在于使用了64位的任务管理器导出了32位进程的dump文件,下面是两个解决方法:
1、使用32位任务管理器,运行:C:\Windows\SysWOW64\taskmgr.exe。
2、使用其它转储工具,比如:ProcessExplorer