我在调试visual studio 2008 C ++项目时遇到了一些麻烦。当我在调试中开始运行它时,使用消息
禁用断点断点不会被击中。没有为此加载符号 文档。
我尝试过清洁和重建,但这并没有什么不同。
我也试过调试Debug-> Windows->模块。如果我右键单击我正在尝试调试的模块并按下符号加载信息,它会显示一个尝试加载符号的地方列表。列表中的第一个是正确的,文件存在,但旁边是这个错误
C:\ path \ to \ my \ symbol \ Debug \ MyProject.pdb:未知的符号处理程序 错误
是否有人知道导致此问题的原因或解决方法?
答案 0 :(得分:27)
首先,有些模块可能无法在模块窗口中显示,因为其中一些模块可能会动态加载(仅在需要时)。
您可能想要在Linker>下签入您的项目属性。调试>生成程序数据库文件并生成调试信息。确保这两个设置正确。
另外,检查C / C ++>一般>调试信息格式设置为程序数据库以进行编辑和继续(/ ZI)或类似的操作。
我知道您提到您的符号文件存在,但我刚才提到的检查将确保您在正确的位置拥有正确的符号版本。
最后,检查解决方案中的所有项目和文件是否都设置为Debug而不是Release或其他内容,因为此项目/文件不会生成任何符号(因此不会加载任何符号)。
希望这有点帮助。
答案 1 :(得分:4)
就我而言,通过在工具/选项/调试/常规中选中“使用托管兼容模式”来解决问题。
答案 2 :(得分:3)
我设法通过侧面复制我的源并检查完全干净的副本来解决这个问题。我假设它是存储在项目.suo文件中的一些设置。
答案 3 :(得分:3)
mspdbsrv.exe进程可能存在问题。尝试杀死它并再次启动调试器。
答案 4 :(得分:3)
对我来说,修复是在重新启动Visual Studio :)就这么简单。没有其他帮助 - 尝试清理(甚至删除了Debug文件夹中的所有文件),检查了设置,甚至杀死了mspdbsrv.exe进程,但只有VS重启才有效。
答案 5 :(得分:3)
如果在使用'附加到流程'时有任何人遇到此问题,此问题的答案就解决了我:
Visual Studio is not loading modules when attaching to process
具体来说,切换到“原生代码”'在'附加到'选项而不是' Auto'。
答案 6 :(得分:2)
答案 7 :(得分:2)
删除bin和obj文件夹中的所有文件。然后再次构建解决方案。如果您的问题与我的一样,似乎VS正在加载特定未知文件的旧版本,重建解决方案/项目不会替换。在尝试之前,请务必复制您的解决方案/项目。祝你好运!
答案 8 :(得分:1)
复制你的" Debug"项目文件夹中的文件夹,然后删除原始文件中的每个文件" Debug"夹。如果你的视觉工作室已经加载项目已经运行,那么在删除Debug的包含之后关闭它并在重新构建整个项目之前重新打开它,理论上这个动作将创建符号文件的新副本,其余的需要调试你的代码。 当我将文件移动到其他计算机并尝试从那里编译和调试我的代码时,我发现这个问题发生在我身上,尽管所有文件夹和驱动器名称都是相同的,一些IDE如何无法使用以前创建的符号文件。 希望这项工作可以为其他人工作!
答案 9 :(得分:1)
VS2015 C ++
在尝试在VS2015中调试我的应用程序时,在取消加载符号后遇到了同样的问题。在此之后,VS2015拒绝加载我感兴趣的项目的符号(C#调用C ++ DLL的解决方案中的多个子项目)。上述解决方案对我不起作用,但确实如此。
对于Visual Studio 2015(C ++):
希望这会有所帮助。 艾伦·M
答案 10 :(得分:1)
在Modules
窗口中,您可以右键单击并将Debug
输出文件夹添加到系统查找符号文件的文件夹中。此外,对我有用的是删除所有输出文件手动,Clean
每次都不会这样做,这就是为什么即使{{1}生成文件,它与输出文件不对应,因此不会从中加载符号。
答案 11 :(得分:0)
在我的情况下,“linker-> general”中的“使用库依赖项输入”应该设置为yes,然后问题就解决了。
答案 12 :(得分:0)
以上都没有帮助我......
最后我从Debug \ X64更改为Debug \ win32,这有帮助,可能它的一些配置在两者中都不相同。也许这会有所帮助 某人的解决方法...
希望可以帮助任何人。
答案 13 :(得分:0)
我正在调试WIA驱动程序,并且遇到了类似的问题。 我注意到了此日志:
名为C:\ Windows \ System32 \ WIA \ wiadriverex.dll的DLL无法加载(LoadLibraryEx返回0x0000007E)。确保驱动程序安装正确
然后我意识到这是由于DLL依赖性所致。然后我将所需的DLL复制到System32,问题消失了。请注意,复制到System32,否则对我不起作用。
答案 14 :(得分:0)
答案 15 :(得分:-1)
1)右键单击要调试的项目。
2)选择 [属性]
3)选择 [Build] 标签
4)确保选中 [定义DEBUG常数] 和 [定义TRACE常数]
5)点击Build标签页底部的 [高级] 按钮 确保 [调试信息:] 设置为 [完整]
6)点击 [确定]
7)重建项目
答案 16 :(得分:-1)