gdb c/c++ 代码调试工具 使用 g++ -g 生成调试文件,不可以加 -O 选项 set [argc] # 传入参数 l n # 列出源码 r # 开始运行到第一个断点 b n # 在第n行打断点 break main if var_name > 10 # 满足条件时打断点 d n # 删除断点 c # 继续运行到下一个断点 s # 单步执行 si # 单步汇编 n # 单步执行,不进入函数 q # 退出 set var [] # 修改变量的值 set $rsp = 0x7ccccccc # 修改寄存器的值 p # 查看特定变量或表达式的值 bt # 查看函数调用栈 bt full # 详细信息 disassemble # 查看当前函数的汇编,可在后面加函数名看指定汇编 x/10gx $rsp # 查看内存中由$rsp开始的10个八字节数据 g:八字节 x:16进制 info locals # 查看局部变量 info registers # 查看寄存器状态 info program # 查看程序运行信息 info break # 查看断点信息 info threads # 查看所有线程 使用gdb调试core文件 使用ulimit -c unlimited 使挂掉的程序产生core文件 gdb ./a.out core gdb demo -p [pid] # 调试运行中的程序