我有一个项目,在其他dll中有多个引用我自己的代码。当我运行网站时,其中一个dll加载了它的pdb文件,而另一个则没有。
从输出中,我看到:
LOTS_OF_文本\共享的业务层. DLL '
LOTS_OF_TEXT\Shared.Visual.Utilities.DLL',符号已加载。
我仔细检查了一下,它们都在“LOTS_OF_TEXT”位置有相应的pdb文件......但是其中一个加载了Symbols(并允许调试),而另一个没有。
为什么?如何让Shared.BusinessLayer.DLL加载Symbols以便调试它?
编辑
为了便于参考,我让贝尔韦代雷在pdb文件更改时将其复制到/AppData/Local/Temp/SymbolCache
......这是我的调试设置告诉Visual Studio查找Symbols的地方。
1条答案
按热度按时间b0zn9rqh1#
启动vsvars cmd提示符(或powershell)并浏览到LOTS_OF_TEXT文件夹。Visual Studio附带了一个名为“dumpbin.exe”的工具,使用该工具可以检查.dll或. exe的结构。若要查找调试符号,在cmd提示符下输入
dumpbin /headers Shared.BusinessLayer.DLL
运行dumpin,你应该在dll的头信息中看到符号路径 * 如果 * 它实际上是用符号构建的。只要符号在那里,或者在搜索路径上,它们就应该被加载。也就是说,检查visual studio是否设置为加载所有符号,方法是转到Tools-〉Options-〉Debugging-〉Symbols,并确保“Automatically Load symbols for:”单选按钮设置在“All modules,unless excluded”上,并且排除列表不包含任何相关图像。