GDB调试命令总结

时间:2021-12-16 15:31:55

GDB的功能

1.启动被调试程序

2.让被调试的程序在指定位置停住

3.当程序停住的时候,可以检查程序状态,变量值

 

用法:

  gcc -g test.c -o test

  gdb

 

命令:

  • 查看源代码

    list/l 空 or 行号 or 函数名 

  

  • 直接enter,重复执行上一命令
  • run/r  运行至下一个断点停下来 or 如果没有断点,直接运行结束
  • start   运行进入主函数(main())停下来
  • .断点

    1)     设置断点

             break/b----行号 or 函数名 [if condition 命中条件]

    2)     info break/b 查看断点信息

    3)     调试

           next/n  单步执行,不进入函数

           step/s  单步执行,进入函数

  • continue/c   继续执行,在下一断点处停下
  • finish     结束当前函数的运行
  • 清除断点

    清除所有断点 clear

    清除某个模块的断点    clear filename

    清除某个函数中的断点       clear function

    清除某行断点       clear 行号

    delete 断点编号

  • disable 断点编号              使某个断点失效
  • enable 断点编号        使某个断点有效
  • display 表达式           每当程序运行至断点都会显示
  • watch 表达式             设置观察点
  • whatis 表达式            显示某个表达式的数据类型

 

 

  •  查看变量 or表达式的值

    print/p 表达式           显示某个表达式的值

    p *array@len             显示一个动态数组array

    输出格式:p/x i

x

16进制

d

10进制

u

无符号19进制

o

8进制

t

2进制

a

16进制

c

字符表示

f

浮点表示

 

 

 

  • 堆栈相关命令

backtrace/bt                   查看堆栈情况

info register                    查看寄存器(除了浮点寄存器)

info all register               查看所有的寄存器

info stack                         查看堆栈使用情况

info args                          查看函数的参数以及其值

info locals                        查看函数的所有局部变量

info catch                        查看函数抛出的异常

 

  • 调试运行环境相关命令

set args arg1 arg2         设置运行参数

show args                       显示运行参数

set width num                设置GDB显示行宽

return <返回值>             改变程序流程,直接结束当前函数并指定值返回