该文件说:
如果在符号路径中包含字符串srv*,则调试器使用符号服务器从默认符号存储中获取符号.例如,以下命令告诉调试器使用符号服务器从默认符号存储中获取符号.这些符号不会缓存在本地计算机上.
.sympath srv*
然而,我发现的是符号被缓存.
我正在使用WinDbg 10并且默认缓存文件似乎是在创建时C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\sym当我删除它们并运行可执行文件时,路径设置为srv*符号,这里是下载的.
那么文档错了吗?
是的,文档是错误的(至少对于WinDbg 6.2.9200.16384).
您可以通过输入上述命令来证明它:
0:000> .sympath srv*
Symbol search path is: srv*
Expanded Symbol search path is: cache*;SRV*http://msdl.microsoft.com/download/symbols
Run Code Online (Sandbox Code Playgroud)
因此,正如我们从WinDbg的输出中看到的那样,扩展的符号路径(实际上将使用它)包含cache*指示将缓存符号的符号路径.
您在WinDbg的文档中找到了这个,这可能不是定义行为的正确位置,因为WinDbg不会加载符号本身.相反,它使用dbghelp.dll,并且该DLL的行为可能会更改,而无需更新WinDbg帮助.
符号路径语法很难习惯,文档遍布各处.扩展和默认目录的所有魔力使它更糟糕.
流程或多或少:
!homedir.)