linux gdb 基本调试命令介绍

常见命令用法整体概述

  1. 启动gdb调试方法: gdb 可执行文件名
  2. list :简写l ,查看源代码,默认一次10行
  3. run :简写r,开始运行程序,直到遇见断点
  4. break 行号:简写b,设置断点在某行
  5. continue:简写c,从当前断点继续向后执行
  6. quit:简写q,退出gdb调试
  7. next:简写n,按行调试,不进入函数体
  8. step:简写s,单步调试,碰到函数进入函数体
  9. until:跳出当前循环体代码,until + 行号,执行到当前行
  10. finish:跳出当前执行的函数体,并打印堆栈和返回值等信息到界面
  11. call 函数名(参数):调用程序中的函数,并向函数传参
  12. print 表达式:打印表达式计算的结果,这里的表达式可以是变量或者任何合法的函数或者算式
  13. display 表达式:每次单步执行后,都展示此时表达式的计算结果
  14. watch 表达式:设置一个监视,当表达式计算结果发生变化,终止gdb调试过程
  15. layout:分割窗口,可以边测试,边显示代码到窗口
  16. where/bt :当前运行的堆栈列表

基本命令的扩展

1. list 查看源码

list 不带参数 :默认显示10行代码,后续还不带参数接着上一段代码继续显示10行 list 行号 :以当前行为中心,上下扩展共计10行 list 函数名:显示当前函数所在的代码

2. break 设置断点

break 行号:在第n行处设置断点 b fn1 if 条件表达式**:条件断点设置 break fun:在函数入口设置断点 delete n:删除第n个断点,n是断点的编号 disable n:暂停第n个断点 enable n:开启第n个断点 clear 行号:清除该行断点 info breakpoints :显示当前设置的所有断点信息 delete breakpoints:清除所有断点

3. 查看运行时数据

where/bt:查看运行时堆栈列表 bt backtrace:查看当前所在堆栈信息 up/down :改变堆栈显示的深度 set args 参数:指定运行时的参数 show args:查看设置好的参数 info program: 来查看程序是否在运行,进程号,被暂停的原因

4. layout 分割窗口

layout:分割窗口,可以边测试,边显示代码到窗口 layout src:显示源代码窗口 layout asm:显示反汇编窗口 layout regs:显示源代码/反汇编和CPU寄存器窗口 layout split:显示源代码和反汇编窗口 Ctrl + L:刷新窗口
经验分享 程序员 微信小程序 职场和发展