1. 合理利用watch硬件断点(很慢)
用途:用于检测内存是否什么时候被修改
举例:先前修改编译器,导致程序跑飞
方法:
1)用常规调试确定,到底哪个函数的栈出错
2)用watch跟踪出错函数的返回地址
2. 合理利用ignore和断点
用途:用于识别寻找出错的实例
举例:编译某个程序,包括200多个函数,出现段错误;根据堆栈信息,知道函数名;函数名用string对象实现,不方便条件断点(?不确定)
方法:
1)在出错的代码处加入断点
2)调试用continue,知道出现段错误异常
3)使用info break,可以获得该断点的命中次数n
4)restart重新运行到断点
5)ignore该断点n-1次
6)开始单步调试