我正在尝试为开源项目npp-community添加一些内容,但似乎无法调试。我正在尝试调试的代码被编译成一个dll,然后链接到主项目。设置断点时,我收到以下错误:
断点当前不会被击中。没有为此文档加载任何符号。
当我检查debug>windows>modules
下的模块时,我检查符号加载信息并得到以下错误。
PDB与图像不匹配
我已经尝试退出visual studio并重新启动/重新编译,但似乎没有解决任何问题。谷歌似乎给出了围绕圈子的线索,没有明确的答案。
答案 0 :(得分:10)
我的VS2010项目存在类似问题,结果问题是由于项目属性错误匹配 - > C / C ++ - > 输出文件 - > '程序数据库文件名'和项目属性 - > 链接器 - > 调试 - > '生成程序数据库文件'。
通过将'程序数据库文件名'更改为“从父级或项目默认继承”来修复它。
答案 1 :(得分:3)
问题在于调试器无法为您的模块找到有效的PDB文件。使用两个参数将PDB文件与二进制图像进行匹配:标识符(GUID)和年龄。有关此过程的更多信息,请参见this article。
确保您的模块具有有效的PDB文件,并且它们与模块或调试器的搜索路径位于同一目录中(Debug-> Options and settings ...-> Symbols)。
答案 2 :(得分:1)
有时会发生这种情况,因为您可能将项目构建为版本。
右键单击解决方案,然后单击“批量生成”>检查所有项目,然后单击“清除”
答案 3 :(得分:0)
我在为WinCE5.0开发智能设备项目时有这个。解决方案是冷启动我正在调试的设备+清理vs2008中的解决方案
答案 4 :(得分:0)
如果您调试的是nuget软件包,我建议这样做:
进入Tools->Options->Debugging->Symbols
并添加https://symbols.nuget.org/download/symbols
否则,您需要手动从dll修改guid以匹配PDB文件中的guid。
答案 5 :(得分:0)
我与nuget包发生名称冲突。我在名为gtest的项目中使用了googletest软件包。 Visual Studio不喜欢那样,也找不到pdb文件。重命名该项目,然后它就起作用了。