WinDbg can';找不到microsoft符号
我有一个简单的演示控制台程序要调试,但令人惊讶的是windbg无法从Microsoft默认存储中删除符号 我知道 .重新加载/f 我得到了总结:WinDbg can';找不到microsoft符号,windbg,Windbg,我有一个简单的演示控制台程序要调试,但令人惊讶的是windbg无法从Microsoft默认存储中删除符号 我知道 .重新加载/f 我得到了总结: ************* Symbol Loading Error Summary ************** Module name Error ConsoleApp PDB not found : cache* Unable to locate the .pdb
************* Symbol Loading Error Summary **************
Module name Error
ConsoleApp PDB not found : cache*
Unable to locate the .pdb file in this location
The system cannot find the file specified : SRV*https://msdl.microsoft.com/download/symbols
The SYMSRV client failed to find a file in the UNC store, or there
is an invalid UNC store (an invalid path or the pingme.txt file is
not present in the root directory), or the file is present in the
symbol server exclusion list.
符号文件路径为
srv*
我试图使用我自己的应用程序的pdf文件,但它甚至找不到microsoft符号
更新
在整理了其他问题之后,我可以把它复制回来。看来我只是看错了信息。由于错误消息指向Microsoft default store,我阅读它时感觉它在Microsoft store中找不到指定的文件…认为它没有连接/查找/下载Microsoft符号,而实际上主要错误是它没有找到我自己的应用程序的符号
不过,这一信息并不十分清楚。例如,当我设置并添加一个附加路径时,会说Ok
0:000> .sympath srv*c:\test\Symbols*https://msdl.microsoft.com/download/symbols;c:\test\hello
DBGHELP: Symbol Search Path: srv*c:\test\symbols*https://msdl.microsoft.com/download/symbols;c:\test\hello
DBGHELP: Symbol Search Path: srv*c:\test\symbols*https://msdl.microsoft.com/download/symbols;c:\test\hello
Symbol search path is: srv*c:\test\Symbols*https://msdl.microsoft.com/download/symbols;c:\test\hello
Expanded Symbol search path is: srv*c:\test\symbols*https://msdl.microsoft.com/download/symbols;c:\test\hello
************* Symbol Path validation summary **************
Response Time (ms) Location
Deferred srv*c:\test\Symbols*https://msdl.microsoft.com/download/symbols
OK c:\test\hello
现在,当I重新加载/f
时,符号加载错误摘要如下:
************* Symbol Loading Error Summary **************
Module name Error
App The system cannot find the file specified : srv*c:\test\symbols*https://msdl.microsoft.com/download/symbols
The SYMSRV client failed to find a file in the UNC store, or there
is an invalid UNC store (an invalid path or the pingme.txt file is
not present in the root directory), or the file is present in the
symbol server exclusion list.
PDB not found : c:\test\hello\symbols\exe\App.pdb
Unable to locate the .pdb file in this location
我不知道为什么无法加载路径
PDB not found:c:\test\hello\symbols\exe\App.PDB
?什么是srv*
意味着你只有这些吗?路径在哪里?
比如说c:\符号 或者f:\mycrap\myuselesssymbols等 路径应该类似于srv*即X:\yyyyy*
您可以使用.symfix在之前设置默认符号路径。重新加载/f在WinDbg会话的输出中有
************* Symbol Loading Error Summary **************
Module name Error
ConsoleApp PDB not found : cache*
因此,ConsoleApp
存在模块加载错误,这是您的应用程序,而不是Microsoft应用程序
当然,您尚未将应用程序的符号上载到Microsoft,因此无法在上找到这些符号
在我看来,你的申请是令人满意的
- 或者是完全没有符号信息的发布版本
- 包含符号信息的调试生成,但在应用程序中指定的路径中找不到符号
- 除了Microsoft symbol服务器(请使用
)之外.symfix c:\path\to\Microsoft symbols
- 确保已为应用程序构建PDB(根据编程语言检查编译器和/或链接器设置)
- 将您自己的符号添加到符号路径(
).sympath+c:\path\to\pdb\
。重新加载符号
srv*
,但实际上我从未见过有人在实践中使用它,因为人们希望从本地存储的符号中获益,从而提高性能
如果仍然不起作用,请使用!sym NOISTING
和用于对符号加载进行故障排除。.pdb
的文件名过滤器应该会有所帮助
原因是
- 即使使用
,WinDbg不会列出它实际查找符号的所有路径!sym noise
- 符号加载顺序的文档不正确
帮助文件说明符号是按此顺序加载的
X:\…\symbols\\.pdb
X:\…\\.pdb
X:\…\.pdb
X:\…\.pdb
X:\…\\.pdb
X:\…\symbols\\.pdb
srv*C:\symbols*https://msdl.microsoft.com/download/symbols
我不再收到此错误的可能重复项,可能在我退出并重新启动WindBG后PDB在哪里?你把它放在c:\test\hello,c:\test\hello\symbols或者哪里了?同样重要的是:你是如何把它放在那里的?复制/粘贴或使用symstore?@ThomasWeller我并不是真的把pdb文件放在那里,我只是想看到它在那里搜索到的一条消息,但没有找到。我可以在修复其他问题后复制它,听起来好像我读错了。我已经更新了帖子。