加载

调试out

  • gdb a.out

调试core

  1. 生成core
ulimit -c unlimited(只对一个终端有用)
  1. gdb (程序名) (core名字)

调试程序

  • gdb attach pid

运行

带着gui

  • gdb -tui (a.out)

设置arg

  • set args 运行时参数

常用

  • r 开始运行
  • c 运行到断点
  • n 下一步
  • s 进入函数
  • until 跳出循环
  • fin 结束函数
  • bt backtrace 显示当前调用堆栈
  • where 查看core目前位置的调用栈

打印

源代码打印

  • list num(打印num行附近代码)
  • list 打印代码,一直回车一直打

变量打印

  • print (打印一切)

断点

设置

  • b 11(普通断点)
  • b 11 if some>=0(条件断点)
  • tb 11(临时断点,只用一次失效)

删除断点

  • delete (可以指定断点编号)

查看断点

  • info break

多线程

查看线程信息

  • info thread

切换线程

  • thread id

查看调用帧

  • info frame
  • backtrace

显示汇编

修改布局

  • layout asm

显示函数汇编

  • disas /m functionname

查看目前汇编

  • x/i $pc
  • display /3i $pc
i line 13
disassemble 0x4004e9, 0x40050c

退出 q