- 本文章为原创,欢迎交流,欢迎转载;转载请勿篡改内容,并且注明出处,谢谢!
C/C++项目开发过程中, bug fixed阶段一般要占用比较长的时间;
- 解决bug一般的步骤:
第一步:重现bug;
第二步:定位,即找到出错代码的位置;
第三步: fix bug
- bug分类: (从code角度来分类)
第一类:项目逻辑的错误 (一般情况下容易解决)
第二类:内存错误
- 内存错误bug分类(严重程度来分类)
一定会导致程序crash的类型:
第一类:访问野指针
第二类:访问空指针
第三类:A CALL B (B delete A object) -> B return A ->crash
大多情况下会导致程序crash:
第三类:内存越界访问
第四类:引用未初始化的变量
长时间运行可能导致程序crash:
第五类:内存泄露
从本质角度来看,程序的每一行代码的运行都是对进程内存的操作,所以本系列文章将着重讲解内存方面的知识,
具体将围绕下面几个方面进行展开:
- 程序与进程的不同
- 进程内存空间的分布
- 程序运行时,所涉及到的内存操作
- 内存错误的原因分析及其解决方法
- 内存泄露分析及其应对方法