Windbg中没有加载符号

时间:2014-11-06 11:08:16

标签: debugging windbg symbols debug-symbols

我从微软下载了x86符号(并安装了它) - 然后我添加了

的同情
.symfix C:\Temp\Symbols\X86

然后我对此进行检查: - 为什么在我没有指定时添加URL?

1: kd> .sympath 
Symbol search path is: srv* 
Expanded Symbol search path is: SRV*C:\Temp\Symbols\X86*http://msdl.microsoft.com/download/symbols

这是我的符号所在 - 但是当我打开崩溃转储时,我仍然会收到错误而不是找到符号。

问题是我的机器上没有互联网访问权限,所以我不希望它出来时搜索符号。

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe - 
Loading Kernel Symbols
...............................................................
................................................................
..
Loading User Symbols
PEB is paged out (Peb.Ldr = 7ffd900c).  Type ".hh dbgerr001" for details
Loading unloaded module list
.....................................

************* Symbol Loading Error Summary **************
Module name            Error
ntkrpamp               The system cannot find the file specified

You can troubleshoot most symbol related issues by turning on symbol loading diagnostics (!sym noisy) and repeating the command that caused symbols to be loaded.
You should also verify that your symbol search path (.sympath) is correct.

2 个答案:

答案 0 :(得分:3)

.symfix命令始终将Microsoft公共符号存储插入到您的路径中;这就是为什么它被称为“修复”。来自文档:

  

.symfix 命令会自动将符号路径设置为指向Microsoft符号存储区。

您的命令是设置符号路径以使用Microsoft服务器,然后将其从中提取的所有符号缓存到C:\Temp\Symbols\X86

相反,您只需将符号路径明确设置为下载符号的位置:

.sympath C:\Temp\Symbols\X86

然后用.reload /f /d /v重新加载符号并查找任何无法加载的符号。成功加载的模块将如下所示:

AddImage: C:\Windows\system32\OLEAUT32.dll
 DllBase  = 000007fe`ff2d0000
 Size     = 000d7000
 Checksum = 000e0140
 TimeDateStamp = 4e587ee8

虽然缺少符号文件的库将显示如下:

AddImage: C:\Windows\system32\OLEAUT32.dll
 DllBase  = 000007fe`ff2d0000
 Size     = 000d7000
 Checksum = 000e0140
 TimeDateStamp = 4e587ee8
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\system32\OLEAUT32.dll - 

我鼓励你read more about symbol path syntax,因为起初可能很难理解。

答案 1 :(得分:2)

它之所以这样做是因为.symfix命令应该做什么Documentation

您应该运行的命令是将本地目录添加到符号路径:

.sympath+ C:\Temp\Symbols\X86