关闭

断点失效问题列举及解决

2516人阅读 评论(0) 收藏 举报

 问题一:“当前不会命中断点。源代码与原始版本不同。”

所下断点失效,提示“当前不会命中断点。源代码与原始版本不同。” 按照提示取消了“选项”中关于调试的“要求原文件与源始版本完全匹配”的选项。此时,虽然断点可以命中,但断点所进行的调试并非当前版本,而是以前的版本。

查询MSDN得解如下:

Visual Studio 调试器
断点失败

 

如果项目中的两个或更多的源文件具有同一名称,调试器在确定断点设置在哪个文件时可能会有问题。当创建的模块与链接到的“调试”库的某一组件具有相同名称时,经常会发生这种情况。

若要解决此问题,请输入源文件的完整路径名。您可以在“文件断点”对话框中更改文件路径名。有关更多信息,请参见如何:编辑断点位置

在其他情况下,尽管对应于断点的源文件存在,但是调试器可能无法找到该源文件。如果源文件已更改并且源代码与调试的代码不再匹配,则将出现此情况。如果希望 Visual Studio 显示与调试的版本不匹配的源代码,请清除在“选项”对话框中的“调试”类别下的“常规”节点中的“仅使用与原始版本完全匹配的源代码”选项。还可以通过选中“文件断点”对话框中的“允许源代码与原始版本不同”来绑定断点。

最后发现在项目的属性页中
“调试”一栏中选择了启用外部程序:C:/Program Files/***/Bin/Index.exe
“生成”一栏中原有的应该是C:/Program Files/***/Bin/的路径变成了/debug/
至此问题已经找到,断点之后以失效,是因为当启用外部程序时采用了外部程序所在版本原代码信息,而在此时的调试却是使用了/debug/下原代码信息。
解决:将“生成”一栏中原路径改回为C:/Program Files/***/Bin/即可。

总结:若出现此问题,可检查项目是否有多个版本的输出。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:273900次
    • 积分:2969
    • 等级:
    • 排名:第11853名
    • 原创:45篇
    • 转载:38篇
    • 译文:1篇
    • 评论:32条
    最新评论