GDB调试常用命令

GDB调试常用命令

  • gdb gdbtest --加载可执行程序

  • r --run,运行,可以带参数

  • set args 参数1 参数2 设置参数

    • set args 是使用gdb读取可调试文件符号后,再使用的命令

      gdb gdbtest   # 先gdb读取可调式文件的符号
      set args [arg1] [arg2]
      
    • 如果不想分两步操作,可以在gdb命令后,加--args

      gdb --args gdbtest [arg1] [arg2]
      
  • i b --info break,断点信息

  • b 3 --break 3,第3行下断点

  • b main --main函数第一行下断点

  • b other_c:fun1 --文件other_c的fun1函数第一行下断点

  • b 120 --在120行下断点

  • clear --删除所有断点

  • d 3 --delete 3,删除断点3

  • disable 1 --禁用断点1

  • enable 1 --启用断点1

  • s --step,跳进去

  • stepi 与step类似,但是比step更详细

  • f --finish,跳出来

  • n --next,执行一行

  • n 3 --next 3,执行3行

  • nexti 单步执行语句,但和next不同的是,它会跟踪到子程序的内部,但不打印出子程序内部的语句。

  • c --continue,继续直至下一个断点或结束

  • p a --print a,输出变量a的值

  • list/l --查看代码

  • q/kill --退出本次调试

  • bt --查看调用堆栈

  • x /nxb 以单字节(b)为单位,以十六进制形式显示(x),打印n(n)个字节

  • return --把当前函数return

  • info variables 查看全局和静态变量
    info locals 查看当前stack frame局部变量
    info args 查看当前stack frame参数

  • set print pretty on/off 开启/关闭显示更友好

  • whatis 显示某个变量或表达式的数据类型

  • awatch:用来增加一个观察点(add watch),使用格式:
        awatch 变量或表达式
      当表达式的值发生改变或表达式的值被读取时,程序就会停止运行。

  • watch:与awatch类似用来设置观察点,但程序只有当表达式的值发生改变时才会停止运行。使用格 式:
        watch 变量或表达式

  • 循环n次后停下来 break 行数 if i==n

参考

你可能感兴趣的:(Linux,实用性文章,软件相关,gdb,c++,gcc/gdb编译调试)