专栏链接:《C++学习》、《Linux学习》
文章目录
| 代码 | 功能:基本功能 |
|---|---|
| l (list) | 查看代码 |
| b n | 打断点 |
| info b | 查看断点 |
| d n | 删除断点 |
| 代码 | 功能:跨段运行 |
|---|---|
| r(run) | 运行至第一个断点 |
| c(continue) | 运行至下一个断点 |
| b 函数名 | 停在函数内部第一行 |
| until | 无法跨越函数 |
| finish | 执行到当前函数返回然后停止 |
| 代码 | 功能:逐步运行 |
|---|---|
| n (next) | 逐步调试 |
| s (step) | 逐过程调试 |
| 代码 | 功能:断点使能 |
|---|---|
| disable | 关闭断点 |
| enable | 使能断点 |
| 代码 | 功能:监视 |
|---|---|
| diplay | 查看(持续监视) |
| whatch | 检测某一变量的变化 |
| set val | 设置新数值 |
全部过程
# 1. 启动GDBgdb ./proc.exe# 2. 查看代码(gdb)l main(gdb)l15,20# 3. 打断点(gdb)b29# main函数调用print_loop_info行(gdb)b calculate_square# 平方函数断点# 4. 查看断点(gdb)info b# 5. 运行到第一个断点(gdb)r# 6. 进入函数内部(gdb)s# 7. 持续监视i(gdb)display i# 8. 逐步执行,看i变化(gdb)n(gdb)n# 9. 监视i的变化(gdb)watchi(gdb)c# 10. 修改i的值(gdb)seti=8(gdb)n# 11. 执行完当前函数(gdb)finish# 12. 关闭断点(gdb)disable2(gdb)info b# 13. 删除断点(gdb)d1(gdb)info b# 14. 退出GDB(gdb)qC语言代码
16// 调用平方函数,获取结果17intsquare=calculate_square(i);18// 格式化打印:循环次数、当前值、平方值19printf("第 %d 次循环 | 当前值:%d | 平方值:%d\n",i-start+1,i,square);20}21printf("循环结束!\n");22}2324intmain(){25// 程序入口打印26printf("===== Linux C 调试示例 =====\n");2728// 调用自定义函数:循环1到529print_loop_info(1,5);3031printf("\n程序正常退出\n");3233return0;34}