我有一个简单的演示控制台程序来调试,但令人惊讶的是windbg不能来自Microsoft默认存储的符号。
我做
.reload / f
我得到摘要:
var inputs = document.getElementsByClassName('minds-subscribe-button'); for(var i=0; i<inputs.length;i++) {if(!$(inputs[i]).hasClass("subscribed")){
inputs[i].click();
}}
符号文件路径是
SRV *
我试图使用我自己的应用程序的pdf文件,但它甚至找不到微软的符号。
更新
在整理出其他问题之后,我可以重现这个问题。好像我只是在阅读错误的信息。由于错误消息指向Microsoft默认存储,我读它就像它没有在Microsoft商店找到指定的文件...认为它没有连接/查找/下载Microsoft符号实际上主要错误说它只是没有找不到我自己的应用程序的符号。
尽管如此,这条消息还不是很清楚。例如,当我设置并添加其他路径时,请说好。
************* 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.
现在当我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
时,符号加载错误摘要是:
.reload /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
?
答案 0 :(得分:3)
在WinDbg会话的输出中有
************* Symbol Loading Error Summary **************
Module name Error
ConsoleApp PDB not found : cache*
因此ConsoleApp
的模块加载错误是您的应用程序,而不是Microsoft应用程序。
当然,您尚未将应用程序的符号上传到Microsoft,因此无法在 https://msdl.microsoft.com/download/symbols 上找到这些符号。
在我看来,你的申请是
因此,
.symfix c:\path\to\microsoft-symbols
),.sympath+ c:\path\to\pdb\
)。.reload
符号语法srv*
is documented,但实际上我从未见过有人在实践中使用它,因为人们希望从本地存储的符号中受益,这会提高性能。
如果仍然无效,请使用!sym noisy
和 Process Monitor对符号加载进行问题排查。 .pdb
的文件名过滤器应该会有所帮助。
原因是
!sym noisy
,WinDbg也不会列出实际查找符号的所有路径符号加载顺序的文档不正确。
帮助文件表示按此顺序加载符号
X:\...\symbols\<ext>\<filename>.pdb
X:\...\<ext>\<filename>.pdb
X:\...\<filename>.pdb
但是我观察到的加载顺序是
X:\...\<filename>.pdb
X:\...\<ext>\<filename>.pdb
X:\...\symbols\<ext>\<filename>.pdb
答案 1 :(得分:0)
srv*
的意思是你所拥有的一切是什么?
路径在哪里?
比如说c:\ symbols
或者f:\ mycrap \ myuselesssymbols等等?
路径应该是 srv *&lt;您的本地目录&gt;即X:\ yyyyyy * http://msdl.microsoft.com/download/symbols
您可以使用.symfix在 .reload / f 之前设置默认符号路径