我在VS2012中有一个项目,调试不可用;如果我设置断点,它会告诉我 "断点当前不会被击中。没有为此文档加载符号"。
在项目的属性中,生成调试信息设置为完全,优化被禁用(因此应生成符号文件 自动...)。 在调试模式下检查模块时,dll的路径位于Temporary ASP.NET files文件夹中,但在该位置找不到pdb文件。更具体;在上面提到的文件夹中,有三个子文件夹(每个子文件夹名为一个看似随机的十六进制字符串),在这些文件夹的一个中,dll和pdbs很好地配对每个模块,但在另外两个文件夹不是这种情况,因为只有dll存在。不幸的是,VS正在寻找后一个文件夹,因此无法找到符号文件 每当我尝试为dll手动加载符号文件时,它会告诉我符号文件不是正确的;我认为它必须来自与dll完全相同的构建。所以我知道把它们放在哪里,但我不知道它们在哪里......
由于此文件夹是隐藏的(它位于我的AppData文件夹中)并命名为" temporary ...",我认为这些文件是自动加载的,我不应该这样做。搞乱它。
那我该怎么办?
我知道这是一个非常模糊的问题,但是对于这样的事情,我非常无知,所以非常感谢一些一般指导!否则请随时提出进一步的问题 - 我会尽力回答。
PS 我知道这里曾多次提出过非常类似的问题,但浏览了很多问题,我仍然没有找到适用于此的解决方案我,所以我想了一个新问题,我可以告诉你我的情况的具体细节是合适的 - 让我知道如果不是这样,我会确保删除这篇文章:)
答案 0 :(得分:1)
1)请检查哪个pdb文件或符号文件没有真正加载,您可以访问调试模块窗口并查找信息。或者您可以访问“输出”窗口,它会显示找不到哪个pdb文件。
(2)在TOOLS-> Options-> Debugging-> Symbols下启用Microsoft Symbol Servers。
(3)清理并重建解决方案,确保没有编译错误,然后重新调试您的应用程序。当然,您可以访问符号服务器的缓存文件夹,检查它是否具有之前未找到的pdb文件。
(4)如果您找到pdb文件,如Hans Passant的建议,您也可以在模块窗口中手动加载符号:
1.右键单击Debug Modules窗口,选择Load Symbols From,然后单击Symbol Path或Microsoft Symbol Servers。
如果调试器没有找到符号,它将显示“查找符号”对话框。
2.在“查找符号”对话框中,找到要加载的符号文件。 符号文件是.pdb文件或.dbg文件。