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

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

以今天调试的一个bug为例

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

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

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

转载于:https://www.cnblogs.com/sopper/archive/2007/12/26/1015948.html

VC6.0下调bug的流程相关推荐

  1. 【VC6.0】getline需要输入2次回车才会结束的BUG修复方法

    今天看C++Primer的时候发现一个问题,getline需要输入2次回车才会显示结果,上网找了一下,发现是VC6.0的原因,修复原因如下: (1)建立一个1.CPP (2)输入#include &l ...

  2. VC6.0實踐——sketchpad

    Git&Github   考慮到今後應該會經常進行代碼的編寫以及即將到來的正式的研究生生涯,特別是眼下正要做的航行器比賽,利用和熟悉Git&Github工具是非常重要的.所以本次實踐作 ...

  3. vc6.0 简易的tcp网络讲解(二)

    至于为什么用vc6.0,我用的是xp系统,没钱 有错误请指出,本人业余的(所写的代码,尽量注释清楚)通过vc6.0的直接复制粘贴即可 (代码来源于网络, 仅供学习交流,严禁用于商业用途 ) 本人参考的 ...

  4. 一个系统中同时使用VC6.0+OpenCV1.0和VS2010+OpenCV2.4.6.0的方法

    From:  http://blog.csdn.net/zzy7222872/article/details/6047446 以前用的是VC6.0+OpenCV1.0的组合,一直用的很好.一般的图像处 ...

  5. 亲密接触VC6.0编译器

    亲密接触VC6.0编译器 大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解.原因是多方面的.大多数情况下,我们只停留在"使用"它,而不会想去"了解" ...

  6. VC6.0 导入资源崩溃

    等我以后挣钱了一定买正版! 最近学习Win32编程,为了锻炼自己,在网上下载了一个VC6.0作为开发工具,应该是兼容性的问题吧,VC6 经常闹毛病. 今天导入资源的时候VC6出现崩溃的现象. 马上寻求 ...

  7. Vc6.0 调试指南 --Happy Debugging

    一:深入了解 Compile.Linking.Build (1)Compile - 编译 当您点击 编译按钮时,编译器将会把你的源代码文件 (.c文件)转换为目标文件(.obj文件) ,目标文件包含的 ...

  8. [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)...

    首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下: C++ Code  1 2   template < class _Ty, cla ...

  9. 20190930双色球中奖号码概率的处理(VC6.0)

    20190930双色球中奖号码概率的处理(VC6.0) 2019/9/30 15:26 https://baike.baidu.com/item/中国福利彩票双色球/8676030?fromtitle ...

最新文章

  1. Handler消息处理机制详解
  2. FPGA开发综合技巧
  3. python流程控制-python简单流程控制
  4. HTML DOM教程 14-HTML DOM Document 对象
  5. 数据结构_栈和队列的区别
  6. 微擎小程序怎么配置服务器域名,随便撸源码源码微擎小程序通用配置图文教程,教会你怎么配置微擎小程序!...
  7. C语言之连接Mysql数据篇
  8. 雷利子油猴脚本v0.3.6,无需启动天翼客户端直接下载
  9. 在 RHEL 和 CentOS 上检查或列出已安装的安全更新的两种方法
  10. testbed笔记:头文件里的函数
  11. 阿里百度腾讯facebookMicrosoftGoogle开源项目汇总
  12. python导入自定义模块_python引入不同文件夹下的自定义模块方法
  13. 通过bib文件引入参考文献
  14. 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 4 - 第二部分
  15. 5-6 uniapp 图片压缩
  16. 人类驯服原始OneNote经历(一)
  17. opencv-python频繁报错尝试解决措施
  18. 安卓Activity转场动画
  19. gap,margin和padding的区别
  20. Ubuntu 安装MySQL 并设置其他主机可访问

热门文章

  1. Java未赋值变量的默认初始值
  2. Memcache面试题
  3. Android之startActivityForResult的使用
  4. hdu 2777(线段树)
  5. 在Windows环境下搭建Android开发环境
  6. 博客园左边导航菜单的问题
  7. Android开发之发送邮件功能的实现(源代码分享)
  8. Android开发之Serializable 和 Parcelable的区别(源代码分享)
  9. observable.unsubscribeOn(Schedulers.io())
  10. Android面试题目之(11) Class结构,动态代理和方法监控