VS2010在调试时产生断点错位怎么解决

转载 2013年10月28日 11:46:01
总结:删掉所有临时文件和输出文件,重编工程;不行再用UltraEdit打开出问题的文件,另存为ANSI编码、换行回车选择Unix 0x0A方式后,检查是否有乱码或者换行不对,应该都能解决。

问题如下:

1.错误代码报错行数错位 
2.debug动态跟踪错位 
3.Release跟踪错位 
4.断点设置自动被跳转

可能的原因有三种:

第一:

代码和dll或者exe不一致;

第二:

数组等越界导致内存乱了;

 

第三:

0D0A 改为了0D少了0A或者中文注释打乱了VS对0D0A的定位

 

方法一:

最方便的方法是静态编译看看是不是第三个原因,

首先VS的option里面把line number勾选出来,这样可以看到每行代码的行数,在断点错位的那行代码里面人为的添加几个语法错误,

然后编译,看看报错的代码行数是不是已经错位了,如果已经错位了,就是第三种情况,可以拿UE或者直接把中文注释全部删掉,

慢慢排查看看哪行换行符出了问题,简便办法是在随机的代码行里面人为添加语法错误,来逐步定位哪里几行的问题。

 

方法二:

1.挨个设断点,终于找到了首错位地址,呵呵,进步. 
2.偶怀疑是注释造成的问题,去掉全部的注释,再DEBUG,靠,还错位... 
3.把开始出问题的代码全部都注释吧...靠,还错位... 
4.这是什么问题,快疯掉了... 
5.把出问题的代码全部删除,咦,正常了.. 
6.看来问题就出在被删除的代码上,不过看起来,代码一切正常啊,怎么会出问题呢? 
7.拿出UE来,看看代码中是否有非法字符(用十六进制的方式看) 
8.问题被看出来了,一般的代码与代码之间的换行是 0x0d 0x0a, 而这段代码中却有几行代码是 0x0d 没有0x0a... 
   到现在,我还没试出来怎样的情况下没有0x0a 
9.去掉0x0d,重新在IDE中"回车" 
10.再Debug,一切正常

vs2012调试时,断点错位、变量的内存信息混乱,无法正常单步调试

我的问题是: 解决方案中,主进程加载dll运行,在调试dll时,发现断点错位、变量的内存信息混乱,无法正常单步调试。 参考了一下 http://blog.csdn.net/etetet...
  • evilstar2015
  • evilstar2015
  • 2017年07月20日 17:12
  • 329

VS单步调试的无法进入断点、行号错乱等问题解决方法

Visual Studio有时候会出现单步调试时候,断点处始终提示“当前不会命中断点。源代码与原始版本不同。” 或者就算能进入断点,单步调试时实际执行的代码与源码行号不匹配的问题。通常原因是因为代码中...
  • lsldd
  • lsldd
  • 2015年05月27日 17:21
  • 5457

vs2012断点 错位

// auto listener1 = EventListenerTouchAllAtOnce::create(); // listener1->onTouchesMoved = CC_CALLBA...
  • ywl102402
  • ywl102402
  • 2014年06月23日 10:16
  • 273

VS调试断点执行异常?

今天写代码遇到了一个非常诡异的问题,让我想把这个问题记下来。 我们写代码时可能会遇到断点不执行,执行不正常等等情况,这里就简单分析一下常见的几种情况。   首先从我遇到的问题开始说起吧。 ...
  • u012999985
  • u012999985
  • 2016年03月11日 20:37
  • 1499

eclipse或vs在c++调试断点乱跳错位问题笔记

总结:删掉所有临时文件和输出文件,重编工程;不行再用UltraEdit打开出问题的文件,另存为ANSI编码、换行回车选择Unix 0x0A方式后,检查是否有乱码或者换行不对,应该都能解决。 问题...
  • luopeiyuan1990
  • luopeiyuan1990
  • 2016年03月22日 15:39
  • 2531

vs2010 修改程序代码,调试程序时,“当前不会命中断点,源代码与原始版本不同。” 的解决方案, 及vs调试时,不能修改源代码的解决方案。

vs2010 修改源代码后,调试程序,当前不会命中断点,源代码与原始版本不同。网上搜索解决方案:1、工具”——>选项”——>调试”——>要求源文件与原始版本完成匹配”去掉勾选。未解决。 2、“编辑”-...
  • tianyuworkroom
  • tianyuworkroom
  • 2015年05月19日 16:58
  • 12762

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

提示:当前不会命中断点。源代码与原始版本不同. 为什么会出现呢? 原因当前大家都清楚,就是因为编译器生成的符号文件与源代码不同. 那我的代码明明已经改变并存档,并且编译了,为什么还是...
  • shenshen211
  • shenshen211
  • 2016年03月17日 17:01
  • 1023

VS2013 断点总是乱跳

VS2013 断点总是乱跳
  • heiqihp
  • heiqihp
  • 2017年10月10日 15:46
  • 239

VS2008在调试时黄色箭头与实际代码行错位的解决办法

inconsistent line endings VS2008在调试时黄色箭头与实际代码行错位
  • boise
  • boise
  • 2016年04月20日 09:45
  • 1565

vs2013调试源码错位问题最新解决方法

最近调试某个.h里的inline函数时,调试器的当前调试行,和实际代码功能总是不符(用汇编窗口可以清楚的看到),正好差两行 这个问题还以为是大文件特有的,这个.h有一千多行 其实这个问题已经存在几...
  • superzmy
  • superzmy
  • 2015年02月05日 19:55
  • 2062
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VS2010在调试时产生断点错位怎么解决
举报原因:
原因补充:

(最多只允许输入30个字)