当前不会命中断点 还没有为该文档加载任何符号

今天是端午,估计是加班的原因,VS2008给我开了个玩笑.

提示:当前不会命中断点。源代码与原始版本不同.

为什么会出现呢?

原因当前大家都清楚,就是因为编译器生成的符号文件与源代码不同.

那我的代码明明已经改变并存档,并且编译了,为什么还是不同呢?

1.我想也许是没有被真正的重新生成吧,

   这好办,清理解决方案,清理工程,为了更彻底,再关闭解决方案,把debug删掉,ncb文件删掉,再打开重新生成.有时候这样问题就解决了,但是我发现问题依旧,还得再想办法..

2.我又想,我的解决方案中有是不是有几个工程呢?

  如果有几个工程,在其它工程中代码改变了却没有重新生成,如果这个时候下断,当前调用的模块(dll,exe)等就会出现与代码不一致了.但是我一看才知道记错了,我这个解决方案里只有一个工程的,也没有调用其它模块,就只有一个对话框而以.....再想.

3.即然VS不认为这个文件改变了,那我直接给他换个新的行吗?

  我果断改掉了这个不能下断的.cpp的文件名和对应.h的文件名,并且再改掉所有调用到.h的地方(.h文件名变了当然得改).编译,调试运行,下断,终于是好了,可以下断,没有提示了.....但是.....这种方法也太不方便了吧,一个大点的工程,如果不能下断的刚好是一个常用的类,那不得累死啊...再想.

4.也想不出什么了,网上看看吧.好多方法啊...(代码文本格式问题)

   前两种方法都有说,

   还有就是去掉  代码一致性检查  ...我想这种方法不是我想要的,只是掩饰问题罢了,不是解决问题之道.

   还有说 "编辑"-->"高级"-->"格式化选定内容"(也就是选中文本,然后按ctrl+K,ctrl+F),不过试了不管用,不过即然别人说了,肯定某种情况下是能解决问题的.

   还有说可能是代码行过长,或者加了什么特殊字符的原因.

   还有说用记事本重打开不能下断的文件,再另存为UNICODE编码的文件.

   感觉估计是还有此道理,MS也不一定能考虑的万无一失,有可能编译器处理文本时会有点问题,并且我的代码里确实有几行代码较长,却没的换行.

  先改吧,为了一次搞定这个可能的格式问题,单行过长问题改完后,再用记事本另存成unicode编码的.保存编译.......过了不长的时间,F5调试运行,再去下断,我的那个神啊.........终于能下正常断点了,不再提示了.....

 

总结:虽然问题是解决了,但是我还是没有想出过所以然来...虽说是通过代码的格式,编码格式改变来解决了这个问题,但是真的是格式问题吗?好像不是吧....如果格式有问题,那么我第3种方法只改文件名不应该能解决问题,因为代码文本格式没有变化啊..如果不是格式问题,但是能过改代码格式和编码方式,问题却解决了......

 

 

最终结论: 不认真的,不仔细,不为用户着想的MS啊,愿你早日破碎虚空,离开这个世界吧.

(这个问题在VC中就有的吧,现在都到VS2010了竟然还没有解决,难道是MS没有能力?我相信其能力,只是MS真的不够用心)


5. 如果上面的方法都还不能命中断点, 那么试试这个方法.

  (1): 全选.cpp文档中的代码(Ctrl+A)

  (2): 代码进行自动格式化.  (Alt+F8)  或者 (Ctrl+K, Ctrl+F),  或者, 菜单--->编辑--->高级--->设置选定内容的格式.

  这个方法有时也能解决断点不能命中的问题.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值