我有一个项目,在其他dll中有多个对我自己的代码的引用。其中一个dll在我运行网站时加载其pdb文件,而另一个则没有。
从输出中我看到:
LOTS_OF_TEXT \ Shared.BusinessLayer.DLL'
LOTS_OF_TEXT \ Shared.Visual.Utilities.DLL',已加载符号。
我仔细检查了它们在“LOTS_OF_TEXT”位置都有相应的pdb文件......但是其中一个加载符号(并允许调试)但另一个没有。
为什么呢?如何让Shared.BusinessLayer.DLL加载符号以便我可以调试它?
修改
为了便于参考,我让Belvedere在更改时将pdb文件复制到/AppData/Local/Temp/SymbolCache
...这是我的调试设置告诉Visual Studio查找符号的地方。
答案 0 :(得分:2)
启动vsvars cmd提示符(或powershell)并浏览到LOTS_OF_TEXT文件夹。 Visual Studio附带了一个名为“dumpbin.exe”的工具,允许您检查.dll或.exe的结构。要查找调试符号,请通过键入dumpbin /headers Shared.BusinessLayer.DLL
在cmd提示符中运行dumpin,如果它实际上是使用符号构建的,那么您应该在dll 的标题信息中看到符号路径。只要符号在那里,或在搜索路径上,就应该加载它们。
话虽如此,请检查visual studio是否设置为加载所有符号,方法是转到Tools-> Options-> Debugging-> Symbols并确保'自动加载符号:'单选按钮设置为'所有模块,除非排除'并且排除列表不包含任何相关图像。