我的GDB调试手册

启动相关

  • 启动某个执行程序的调试gdb file
  • 运行run [arg1 arg2...]

断点相关

  • 添加断点b 13 | b func_name | b test.c:19 | b TestClass::testFunc(int)
  • 在某个具体地址b * 0xffffffab 注意*号
  • 添加零时断点 tbreak
  • 查看断点info breakpoints
  • 去掉断点disable id id是Info breakpoints里面的标号。

运行相关

  • 运行r | run
  • 下一步 step | s
  • 下一行 next | n, 不会进入函数

状态查看相关

  • 查看某个变量 print x
  • 查看调用栈 backtrace
  • 查看frame信息 info frame, 包含参数,变量,重要的寄存器。
  • 查看寄存器 info register
  • 查看变量 info local , 指局部变量
  • 查看参数 info args
  • 查看汇编代码(以main为例) disassemble main
  • 查看某个函数的地址(以main为例)info address main

内存查看

基本格式: x/ [n][f][u] addr
u是单元大小, n是几个单元, f是格式。
格式类型有:

  • x 按十六进制格式显示变量。
  • d 按十进制格式显示变量。
  • u 按十六进制格式显示无符号整型。
  • o 按八进制格式显示变量。
  • t 按二进制格式显示变量。
  • a 按十六进制格式显示变量。
  • c 按字符格式显示变量。
  • f 按浮点数格式显示变量。
  • s按字符串显示变量

单元大小类型有:

  • b表示单字节。
  • h表示双字节。
  • w表示四字节。
  • g表示八字节。
    根据自己需要组合即可,比如查看数组 int arr[] = {1,2,3};
    (gdb) x/3dw arr

你可能感兴趣的:(工具手册)