VS 2005 VS2008 VS2010 设置断点,在调试时产生断点错位怎么解决 - 小众知识

VS 2005 VS2008 VS2010 设置断点,在调试时产生断点错位怎么解决

2015-10-28 13:22:14 苏内容
  标签: VS2010/断点
阅读:3595

被优化了?-->禁止优化

问题如下:

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,一切正常

扩展阅读
相关阅读
© CopyRight 2010-2021, PREDREAM.ORG, Inc.All Rights Reserved. 京ICP备13045924号-1