3

我有一个项目,大约一个小时前调试工作得很好,现在在最新的重建之后,我无法让它加载符号文件,所以我无法达到我的断点。

我已经尝试了这里关于修复“断点当前不会被命中”的建议。没有为此文档加载任何符号。”</a> 并且无法让它加载我的 PDB。关于 .PDB 文件没有在 SO 上加载的问题有很多,我花了最后一个小时尽可能多地浏览它们并尝试了所有建议,但无济于事。

我试过Build>Rebuild Solution, Build>Clean+ Build>Build Solution, Build>Clean+ Build>Rebuild Solution,手动删除 BIN 输出文件夹中的所有文件 +Build Solution和/或Rebuild Solution. 在每种情况下都会发生同样的事情;编译器创建一个全新的 .DLL 和 .PDB 文件,但 .PDB 拒绝在运行时加载。

我什至尝试过Debug>Windows>Modules>[Right-Click on offending symbol library]>Load Symbols并手动浏览到正确的 .PDB 文件,但是当我点击Open它时,它只会告诉我“在此文件夹中找不到匹配的符号文件”。

使用Debug>Windows>Modules>[Right click...]>Load Symbol Information给了我:

C:\Windows\ssoederPDMupgrade.pdb:找不到或打开 PDB 文件。C:\VS_TestFolder\EPDMAddIns\ssoederPDMupgrade\bin\Debug\ssoederPDMupgrade.pdb:PDB 与图像不匹配。C:\VS_TestFolder\EPDMAddIns\ssoederPDMupgrade\obj\Debug\ssoederPDMupgrade.pdb:PDB 与图像不匹配。C:\Windows\ssoederPDMupgrade.pdb:找不到或打开 PDB 文件。C:\Windows\symbols\dll\ssoederPDMupgrade.pdb:找不到或打开 PDB 文件。C:\Windows\dll\ssoederPDMupgrade.pdb:找不到或打开 PDB 文件。C:\Users\ssoeder\AppData\Local\Temp\SymbolCache\ssoederPDMupgrade.pdb\afe14027e9c6490883d12f2f139cb5911\ssoederPDMupgrade.pdb:找不到或打开 PDB 文件。C:\Users\ssoeder\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbols\ssoederPDMupgrade.pdb\afe14027e9c6490883d12f2f139cb5911\ssoederPDMupgrade.pdb:无法找到或打开 PDB 文件。C:\VS_TestFolder\EPDMAddIns\ssoederPDMupgrade\obj\Debug\ssoederPDMupgrade.pdb:PDB 与图像不匹配。SYMSRV:C:\Users\ssoeder\AppData\Local\Temp\SymbolCache\ssoederPDMupgrade.pdb\AFE14027E9C6490883D12F2F139CB5911\ssoederPDMupgrade.pdb 未找到

SYMSRV: http ://msdl.microsoft.com/download/symbols/ssoederPDMupgrade.pdb/AFE14027E9C6490883D12F2F139CB5911/ssoederPDMupgrade.pdb 未找到

http://msdl.microsoft.com/download/symbols:符号服务器上找不到符号。

4

4 回答 4

1

答案不多,但是......
我认为 VS Express 2013 中有些东西已经损坏。我不知道如何或为什么 - 我在这里可能完全错了,但简单的问题是让我的断点工作的是安装 VS Community 2015 .

安装 VS Community 2015 (VSC 2015) 后,符号文件加载没有问题,并且所有断点都被命中。这也使我现有的 VS Express 2013 (VSC 2013) 安装中的所有内容都可以正常工作,因此我现在可以毫无问题地使用其中任何一个。


活动时间线:

  1. 我已经在 VSE 2013 上为同一个项目工作了一两个月了。编写类库,使用Debug>Attach to process.

  2. 我昨天对单个类模块中的代码进行了一些更改(没有其他更改),并用于Build>Rebuild Solution清理和重新生成当前配置(DEBUG)输出文件。

  3. 事件视界:我像往常一样使用调试Attach to process,我的断点出现空心的消息,它不会被命中,因为没有加载任何符号。

  4. 在发布到这里之前,我花了很多时间试图解决这个问题(有关尝试的详细信息,请参阅我的原始问题)。

  5. 从@HansPassant 收到关于从命令行使用的建议Symchk。尝试按照链接到的说明进行操作,但无法使其正常工作 - 命令行无法识别Symchk或无法识别Symchk.exe为有效的命令/进程/等。

  6. 我下载并安装了 WDK 8.1 更新。

  7. 打开 VSE 2013,收到有关驱动程序无法加载、应用程序在加载前冻结的错误消息。 实际上,经过多次尝试后,我发现它有时会进入欢迎屏幕 - 但即使在那时仍然没有响应。

  8. 去 M$ VS 网站下载 VSE 2013 安装文件的最新副本进行修复安装,我注意到有一个更新的版本:VSC 2015。

  9. 下载并安装 VSC 2015。

  10. 打开项目,通过使用开始调试Debug>Attach to process并且它工作- 所有符号加载并且我的断点工作。注意:我没有改变项目 * - 只是打开它并运行。
    *除非 IDE 在我不知情的情况下通过打开项目进行了一些更改

  11. 这似乎也修复了 VS2013 安装中损坏的任何驱动程序,因为我回到 VSE 2013 并且它没有错误地打开并且我能够打开同一个项目并且执行Attach to process所有符号加载和断点再次工作。

于 2015-08-18T14:24:32.917 回答
0

我对 VS2013 Ultimate 也有同样的问题。我对程序集进行了几次清理和构建,并从C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files.

我还验证了在“调试 -> 选项和设置 -> 符号”中,没有排除任何模块......最后,我发现了一个与部署到 GAC 中的引用不同的引用。

于 2015-09-29T15:07:02.603 回答
-1

我很高兴你让它工作 CBRF23!尝试在 DevC++ 中编译 DirectX 效果文件时遇到了这个问题。我发现下载 pdbs 的最简单方法是首先在此处下载 WinDBG:http: //go.microsoft.com/fwlink/p/ ?LinkId =536682 然后作为示例,假设您要下载 d3dx9d.pdb。从 C:\windows\system32 复制 d3dx9d.dll 并将另一个副本粘贴到您的(调试器)windbg symchk.exe 文件夹中,然后连接到您的 Internet 服务器,转到 Windows 开始菜单,运行:[然后键入] cmd [按 Enter ],接下来通过命令提示符(MS-DOS 窗口)进入 windbg 调试器文件夹(例如,如果它位于 C:\windbg_6p12p0002p633\debugger_x86 文件夹中,则键入):

cd windbg_6p12p0002p633[回车] cd debugger_x86

[最后键入以下内容,但将双星号**更改为一个星号 *:]

symchk /if d3dx9d.dll srv**c:\symbols*\mainserver\symbols* https://msdl.microsoft.com/download/symbols

请再次注意,在 srv 之后应该只有一个星号(帖子会将星号解释为斜体或粗体),而不是两个,然后它将打开 symchk.exe 并将与输入的 dll 关联的 pdb 符号文件下载到自动创建 C:\symbols\ 文件夹!

于 2016-03-08T08:24:34.027 回答
-2

您是否尝试过这些步骤?

1-删除.SUO文件

2-做一个干净的建筑。

3-制作一个构建项目

于 2015-08-18T02:18:36.077 回答