解决“当前不会命中断点。源代码与原始版本不同”的问题 当前不会命中断点,源代码与原始版本不同,解决办法

解决VS2005 VS2008 vs2010断点无效-源代码与原始版本不同

网上说的方法:(额~但是我就是不能用。但是也贴出来)


方法1

直接把整个文件格式化了一次,断点就可以用了。具体操作如下:

首先,在一个文件(如一个cpp格式的文件)上,进行Ctrl + A即全选;
再在菜单:编辑-〉高级-〉设置选定内容的格式 (Ctrl+K, Ctrl+F)

最后,再对该文件所在的项目选中点击右键选择“重新生成”或是“清理”后再“生成”。

注释:

通过比较文件发现是由于制表符Tab(0x09)引起的,原因不详。

(该方法解决了本人问题)

方法2

整个工程重新生成。


方法3

利用批清理和批生成来重新通过源代码生成DLL,以便源代码和DLL是对应的。

1、右键点击解决方案,选中“批生成”

2、先点“批清理”,再点“批生成”


作者:kissazi2
出处:http://www.cnblogs.com/kissazi2/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


================================

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

  1636人阅读  评论(2) 收藏  举报

原因:该行或该行前面的行有其他与语言的字符。

解决方法:

方法一:(推荐)

 编辑”-“高级”-“设置选定内容的格式”。

方法二:清理解决方案,重新生成方案

方法三:(推荐)

将断点提前,看看在哪行无法断点。然后把该行的中文或其他字符处理掉。

方法四:

将该文件用notepad打开,然后用Unicode编码保存。

方法五:

项目生成的(即OBJ文件夹,存着两种版本)与临时生成 (Temporary ASP.NET Files目录下)不一致,, 
之前我用了上述的方面不能解决。把两个目录的文件删除。

方法六、重新命名该文件。

========================================

当前不会命中断点,源代码与原始版本不同,解决办法

  10714人阅读  评论(11) 收藏  举报

今天是端午,估计是加班的原因,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),  或者, 菜单--->编辑--->高级--->设置选定内容的格式.

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

参考:
源代码与原始版本不同 vs2010

猜你喜欢

转载自blog.csdn.net/fz835304205/article/details/78070501