已触发了一个断点 vs_错误信息:VS2010断点不能命中

在一次代码调试过程中,发现明明设置了的断点,但是VS始终不能在断点的位置停下来。

使用了以下方法:无效

1) 网上的说法是重新编译整个工程。我尝试了先删除SDF文件并重新编译,问题依旧。

2) 检查了各个资源ID,确认没有重复的ID,文件依旧。

3) 还有一种方法可以解决此问题,但是我认为不够好。

点击菜单栏“调试”》“选项和设置”》“常规”》去掉“要求源文件与原始版本相同”前面的勾。

这种方法没有要求源文件的版本和生成二进制文件的源文件版本一致,可能会导致一些意想不到的问题,比如变量名无法监视之类。

4) 尝试删除生成的PDB文件,然后重新编译,文件依旧。

以下方法解决了问题

网上还有另一种方法,使用VS里的格式化功能可以解决此问题。

具体为首先全选出问题的源文件,然后点击VS菜单栏:编辑-高级-格式化选择。然后保存源文件,再次调试就可以命中断点了。

另外还有一种方法,就是在出问题的源文件的任意一行输入一个制表符按键(TAB),然后保存文件,也可以解决此问题。

总结

此问题在VS2010上出现,VS的更高版本我还没有测试过。具体的原因还没有找到,但你如果碰到了此问题,费尽千辛万苦都没有找到解决之道,可以试试输入一个TAB看看。

更新

经过研究发现,此问题和BEGIN_MESSAGE_MAP/END_MESSAGE_MAP这一套宏的位置有关。

以下代码片段会导致断点不能命中:

4596e5daf5cc5f94760779f145290daf.png

选中BEGIN_MESSAGE_MAP/END_MESSAGE_MAP这一代码块,然后使用VS的”编辑-高级-格式化选择”功能,代码会变为如下的样子:

fadfebe77643eb4d0273dc7822e9151a.png

从以上两段代码片段中我们看到,VS在格式化的时候,认为BEGIN_MESSAGE_MAP/END_MESSAGE_MAP需要向右移动一个Tab键,如果你的代码类似于上面第一个代码片段,那么你可能也会碰到代码在调试阶段无法命中断点的问题。我推测这可能是VS2010版本的一个小Bug。

86d4ce066cd2ba372349b8336136caba.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值