gdb调试器基本使用

常用命令

  • gcc -g a.c -o a.out,这样就可以调试a.out
  • gdb a.out开始调试a.out
  • focus 类似turbo C的界面,使得当前代码高亮实时显示。
  • list 15 从15行开始列出源码
  • b foo() 在foo()函数设置断点
  • b 20 在第20行设置断点
  • r 表示跑程序,run
  • n 表示next,单步执行
  • display 变量一直显示某变量的值
  • p 变量 打印一次某变量的值
  • p *地址 打印内存某地址里的内容
  • info args 查看参数信息

汇编相关

  • layout asm 显示汇编代码
  • start 开始单步运行
  • disassemble 函数名 显示某函数的汇编代码
  • disassemble /m 显示当前函数汇编代码
  • si 表示step into,按汇编语句单步执行,深入被调函数
  • ni 表示step over,也是单步执行;
  • info registers 查看所有寄存器的值
  • display $eax这样查看寄存器值
  • info frame 查看当前栈的概览信息
  • x/10x $sp按照16进制打印当前栈的前10个元素