【发布时间】:2016-12-21 17:41:44
【问题描述】:
我在 VS2012 中有一个项目无法调试;如果我设置断点,它会告诉我
“当前不会命中断点。没有为此文档加载任何符号”。
在项目的属性中,Generate debug info设置为full,优化被禁用(所以符号文件应该被生成自动地...)。
在调试模式下检查模块时,dll 的路径位于 Temporary ASP.NET 文件夹中,但在该位置找不到 pdb 文件。更加具体;在上面提到的文件夹中,有三个子文件夹(每个都命名为看似随机的十六进制字符串),在这些文件夹中的 一个 中,dll 和 pdb 为每个模块很好地配对,但是在其他两个文件夹中文件夹情况并非如此,因为只有 dll 存在。不幸的是,VS 正在查找后一个文件夹,因此无法找到符号文件。
每当我尝试为 dll 手动加载符号文件时,它都会告诉我符号文件不是正确的;我认为它必须来自与 dll 完全相同的构建。所以我知道把它们放在哪里,但我不知道它们在哪里......
由于这个文件夹是隐藏的(它位于我的 AppData 文件夹中)并命名为“临时...”,我假设文件是自动加载的,我不应该乱用它。
那我该怎么办?
我知道这是一个非常模糊的问题,但是当涉及到这样的事情时我非常无知,所以非常感谢一些一般性的指导!否则,请随时提出更详细的问题 - 我会尽力回答。
PS 我知道这里已经多次提出了非常相似的问题,但是浏览了很多问题,我仍然没有找到适合我的解决方案,所以我想了一个新问题,我可以给你我的情况的确切细节是合适的 - 如果不是这样,请告诉我,我会确保删除这篇文章:)
【问题讨论】:
-
PDB 文件的位置也编码到二进制文件中。通常指向项目的 obj\Debug 目录。因此,在与 dll 相同的位置没有 pdb 的副本通常不是问题。使用 Debug > WINdows > Modules > 在列表中找到 DLL > 右键单击 > Symbol Load Information。告诉您调试器在哪里查找 PDB 文件。
-
好的,谢谢!尽管在重新定位它们之前,我仍然有实际定位真正的 pdb 文件的问题;我现在知道它们应该在哪里,但我不知道它们实际上在哪里......我肯定在过去的某个时候移动了一些文件,因为它们似乎不太可能刚刚消失......
标签: visual-studio debugging visual-studio-2012 visual-studio-debugging debug-symbols