今天发现一个非常奇怪的VSIDE BUG,经过1个小时的研究解决
2005-04-30 12:25
661 查看
今天象往常一样打开VS开始MaxtoCode的编写
调试的过程中,我发现我完全看不懂程序的走向(到处乱跳)
实在是让我郁闷了好一阵子(我以为我写程序写傻了...呵呵)
经过几次调试,和一些高级调试技巧,我发现原来是代码错位了~~~~晕
问题如下:
1.错误代码报错行数错位
2.debug动态跟踪错位
3.Release跟踪错位
4.断点设置自动被跳转
我是第一次遇到这样的问题(VC++.NET,不过相信这是VSIDE的BUG,所以各位都有可能遇到此问题)
头都大了,代码编译正常,DEBUG和Release运行结果也正常,可是这对调试带来了非常大的难度,这是什么原因造成的?
把N长的代码CPP和H看了N次,没发现有问题.
OK,开始全面测试吧,今天不找到问题,我就不写MaxtoCode了
1.挨个设断点,终于找到了首错位地址,呵呵,进步.
2.偶怀疑是注释造成的问题,去掉全部的注释,再DEBUG,靠,还错位...
3.把开始出问题的代码全部都注释吧...靠,还错位...
4.这是什么问题,快疯掉了...
5.把出问题的代码全部删除,咦,正常了..
6.看来问题就出在被删除的代码上,不过看起来,代码一切正常啊,怎么会出问题呢?
7.拿出UE来,看看代码中是否有非法字符(用十六进制的方式看)
8.问题被看出来了,一般的代码与代码之间的换行是 0x0d 0x0a, 而这段代码中却有几行代码是 0x0d 没有0x0a...
到现在,我还没试出来怎样的情况下没有0x0a
9.去掉0x0d,重新在IDE中"回车"
10.再Debug,一切正常
这个问题是怎么造成的,我说不清楚,不过它的确正在了,而代码我从没用第二种编辑器编写过,完全是使用的VSIDE2003
不过,问题解决了,如果各位朋友也遇到了这样的问题,希望这篇文章能给您提供一些参考.
(PS:吃饭罗,没有检查有没错别字,如果有,请包含)
Jason.NET
调试的过程中,我发现我完全看不懂程序的走向(到处乱跳)
实在是让我郁闷了好一阵子(我以为我写程序写傻了...呵呵)
经过几次调试,和一些高级调试技巧,我发现原来是代码错位了~~~~晕
问题如下:
1.错误代码报错行数错位
2.debug动态跟踪错位
3.Release跟踪错位
4.断点设置自动被跳转
我是第一次遇到这样的问题(VC++.NET,不过相信这是VSIDE的BUG,所以各位都有可能遇到此问题)
头都大了,代码编译正常,DEBUG和Release运行结果也正常,可是这对调试带来了非常大的难度,这是什么原因造成的?
把N长的代码CPP和H看了N次,没发现有问题.
OK,开始全面测试吧,今天不找到问题,我就不写MaxtoCode了
1.挨个设断点,终于找到了首错位地址,呵呵,进步.
2.偶怀疑是注释造成的问题,去掉全部的注释,再DEBUG,靠,还错位...
3.把开始出问题的代码全部都注释吧...靠,还错位...
4.这是什么问题,快疯掉了...
5.把出问题的代码全部删除,咦,正常了..
6.看来问题就出在被删除的代码上,不过看起来,代码一切正常啊,怎么会出问题呢?
7.拿出UE来,看看代码中是否有非法字符(用十六进制的方式看)
8.问题被看出来了,一般的代码与代码之间的换行是 0x0d 0x0a, 而这段代码中却有几行代码是 0x0d 没有0x0a...
到现在,我还没试出来怎样的情况下没有0x0a
9.去掉0x0d,重新在IDE中"回车"
10.再Debug,一切正常
这个问题是怎么造成的,我说不清楚,不过它的确正在了,而代码我从没用第二种编辑器编写过,完全是使用的VSIDE2003
不过,问题解决了,如果各位朋友也遇到了这样的问题,希望这篇文章能给您提供一些参考.
(PS:吃饭罗,没有检查有没错别字,如果有,请包含)
Jason.NET
相关文章推荐
- 今天非常高兴,解决了一个关于java类转json时有关联对象而且困扰我很久的BUG
- 今天发现一个隐蔽的条件编译BUG,不容易发现,编译不会出错。是否可以用断言来解决?
- 今天发现MOSS2007的一个非常奇怪的地方
- 今天发现的kali rolling中的一个翻译bug
- 2010年时研究COM时发现的阿里旺旺的一个bug
- 一个奇怪BUG的记录(未根本解决)
- 今天无意中又发现一个记事本的 bug
- 今天发现一个关于CSS的东东,解决了我很多疑问
- DELPHI中的ADODB.pas 单元中,一个直到今天都还没有解决的BUG
- 今天把自己的联想手机修了一下,居然还发现了一个小bug
- 今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在Win中见过的/r回车符号。由于编辑软件的编码问题,某些IDE的编辑器在编辑完文件之后会自动加上这个^M符号。看起来对我们的源代码没有任何影响,其实并不然,当我们把源代码文件Check In到svn之类
- 发现NETSCALER 9800的一个BUG,目前正在解决。
- 今天发现了VISTA系统的一个BUG
- 今天发现Eclipse cdt 使用scanf后的一个BUG
- 今天发现一个奇怪的现象?
- asp.net的一个bug的发现和解决
- 今天发现了ibatis.net的一个bug
- 今天发现一个android动画合集,明天开始研究
- 今天无意中又发现一个记事本的 bug
- 关于google的gson-2.3.1.jar,发现一个奇怪的bug