gdb 调试笔记

1. 合理利用watch硬件断点(很慢)

用途:用于检测内存是否什么时候被修改

举例:先前修改编译器,导致程序跑飞

方法:

1)用常规调试确定,到底哪个函数的栈出错

2)用watch跟踪出错函数的返回地址


2. 合理利用ignore和断点

用途:用于识别寻找出错的实例

举例:编译某个程序,包括200多个函数,出现段错误;根据堆栈信息,知道函数名;函数名用string对象实现,不方便条件断点(?不确定)

方法:

1)在出错的代码处加入断点

2)调试用continue,知道出现段错误异常

3)使用info break,可以获得该断点的命中次数n

4)restart重新运行到断点

5)ignore该断点n-1次

6)开始单步调试

你可能感兴趣的:(String,编译器)