点点滴滴访问量:
 

1.       首先在要调试的项目下建立一个文件夹CurrentUse,把要修改的那个类拖到此文件夹下,免得查看其它类后再次查找,如果类文件很多的话,查找一个类文件会很耽误时间

2.       然后根据加入断点,并以自己的习惯的方法去锁定问题所在。(变量发生错误的地方强行修改为有效值)

       以今天调试的一个bug为例

debug下加入断点后逐步调试,发现有一个变量在其传递过程中发生了变化,接着单独跟踪这个变量,把这个变量所有使用的地方加上断点,开始调试,发现在其中一次传递时,明明是有效数据,传过来后就变成无效数据了,找到了一个出错的问题,那么此错误是不是引起这个bug的原因呢?继续排除,首先找了一遍没有发现重名现象,接着在调用此变量的所有代码行上面加入一行代码,用于给此变量强行赋一个有效值,再调试通过,返回结果正确,现在确定了是此变量的使用引起的bug              

         接着检查这个变量的声明使用,也没有发现任何错误,这时候想起在这个类下打开类向导时打不开的问题,难道是它引起的错误?又查看了一下头文件里此变量声明处的代码,发现//{{AFX_DATA(类名) 类向导自动生成的变量声明       //}}AFX_DATA 里的变量声明有改动,此处声明了一个数组,再查看了cpp文件里函数DoDataExchange()里使用的变量,发现是用数组的每一位数据来做成员变量使用,安说这种用法是可以的,但是记得有本书里写到“//{{AFX_DATA(类名) 类向导自动生成的变量声明//}}AFX_DATA”这样的格式是供类向导定位使用的,那么是不是此处类向导发现头文件里的变量和cpp文件里函数DoDataExchange()里的变量不一致而发生打不开呢?试着把数组改为变量让其一一对应,类向导打开正常,调试也通过,看来还真有可能是这个原因造成的bug,接着改代码里所有使用此数组的地方的逻辑,调试通过,bug也消除。

3.理解代码逻辑后再修改代码

posted on 2007-12-26 19:54  sopper  阅读(462)  评论(2编辑  收藏  举报