GDB 调试程序
1. 初始化
gdb 是对已经编译成功程序到调试, 并且为了保证可执行程序时包含调试信息, 编译时使用 -g 参数来指明
sublimetext ctrl+B 生成到可执行文件不能直接被 gdb 调试
2. 暂停程序
gdb 可以实用几种方式来暂停程序: 断点, 观察店, 捕捉点, 信号, 线。 当程序被暂停后, 可以使用 continue, next, step 来继续执行程序
continue 执行到下一个暂停点或程序结束
next 执行下一行代码但进入函数内部
step 执行下一行代码并且进入函数内部
(1)设置断点
a. break +[源代码行号]
b. break ... if ... condition ... 比如 break ... if i = 100 来设置循环次数
(2) 设置观察点
a. watch +[变量][表达式] 当变量或表达式改变时即停住程序
b. rwatch +[变量][表达式] 当变量或表达式被读时, 停住程序
c. awatch+[变量][表达式] 当变量或表达式被读写时, 停住程序
2. 查看信息
(1) 查看数据
a. print variable 查看变量
BTW
1. 列文件清单
List, 列出源文件, 按 enter 逐渐显示出下面几行
2. 执行程序
b(break) +[][] 添加断点
n 开始单步调试
3. 断点操作
delete index 删除第 index 个断点
enable index 使第 index 个断点 enable
disable index 使第 index 个断点 disable
4. 函数调用
call name 调用并执行一个函数
call function(1,3)
call printf("abcd")