我在 Windows 10 上的 Visual Studio 2019 (16.4.2) 中有一个链接 C++ 静态库的测试可执行文件。当我启动调试器时,测试 cilent 和库代码中的所有断点都显示为空心,并带有 PDB 无法使用的工具提示位于:
“当前不会命中断点。没有为此文档加载任何符号。”
启动调试器后,从“未加载符号”屏幕上的链接手动浏览可执行 PDB 也会失败并显示以下消息:
“在此文件夹中找不到匹配的符号文件”
这个奇怪的文件在那里,它是最新的,PDB 浏览器让我选择它。它是正确的 PDB(在链接器 > 调试设置中指定),而不是更小的中间文件夹。
我正在构建 Debug|x86 并在 Debug|x64 中遇到相同的问题。我的测试可执行文件使用的是 Google 测试版本 1.8.1.2。
我尝试删除所有中间文件和输出,关闭/重新打开 IDE 并重建解决方案,但这没有帮助。PDB 没有被其他项目中的同名数据库覆盖。
我的项目设置如下:
测试可执行和静态库:
C/C++ > 常规:调试信息格式 =程序数据库 (/Zi)。
测试可执行文件:
链接器 > 调试:生成调试信息 =生成调试信息 (/DEBUG)
链接器 > 调试:生成程序数据库文件 = $(OutDir)$(TargetName).pdb
第 3 方 Google 测试 PDB 存在于输出文件夹中,由我正在使用的 NuGet 包中的构建复制。我已经检查了这些是正确的 PDB。我认为无论如何我都不需要这些,因为我没有尝试调试任何 Google 测试代码。
我尝试创建一个新的“Hello world”测试可执行文件,并且可以毫无问题地对其进行调试。