GDB 常用命令

《鬼灭之刃》 - 炭治郎

GDB 常用命令

基本指令

1
2
3
4
5
6
7
8
9
10
11
12
// 其中 -o 指定输出文件名, -g 指定可以调试  -m64 选项编译为64位
gcc bugging.c -o bugging -g -m64

// 进入gdb 调试 bugging 程序
gdb bugging

// (gdb) -> 表示在gdb 命令行界面
// 执行调试程序
(gdb) run

// 退出gdb
(gdb) quit

常用命令表

命令简写说明
listl查看源码(10行)
backtracebt, where打印函数栈信息
nextn执行下一行,逐行
steps一次执行一行,逐过程,会步入
finish运行到函数结束
continuec继续运行
breakb设置断点
info breakpoints显示断点信息
deleted删除断点
printp打印表达式的值
runr启动程序
untilu执行到指定行
infoi显示信息
helph帮助信息

补充

list 行号 显示行号附近10 行

list 函数名 显示函数附近10 行

break 行号 在行号位置打断点

break 文件名:行号 在某文件行号位置打断点

break 函数名 在函数处打断点

break 文件名:函数名 在某文件内函数处打断点

info breakpoints 显示当前断点信息

  • Num 代表断点编号
  • Type 代表断点类型
  • Disp代表断点被命中后,该断点保留(keep),删除(del),关闭(dis)
  • Enb 代表断点 enable(y),disable(n)
  • Addreee 代表断点处虚拟内存地址
  • What 代表断点源文件信息

delete 删除所有断点

delete Num 删除指定断点

enable Num 开启指定断点

enable once Num 断点 hit 一次之后关闭该断点

enable delete Num 断点 hit 一次之后删除该断点

disable Num 关闭指定断点

info locals 打印当前断点处所在函数的所有局部变量,不包括函数参数

print 变量或表达式 打印表达式的值,可显示当前函数的变量值,全局变量的值

next (N) 单步执行 (N 次) --> 不会进入函数内部

step (N) 单步执行 (N 次) --> 会进入函数内部

continue 继续

until N 执行到程序第 N 行

display varname 追踪变量

undisplay varnum 关闭追踪, varnum 可以由 info display 来查看

set follow-fork-mode [parent|child] 选择父子进程调试



----------- 本文结束 -----------




0%