GDB常用命令整理
可参考这个更详细的:https://bbs.pediy.com/thread-272300.htm
本篇介绍gdb调试的一些基础指令。
注意:进行gdb调试时,在编译时一定要加上-g 参数,否则无法正常gdb调试。
命令 | 全称 | 作用 | 实例和说明 |
file <文件名> | file | 加载被调试的可执行文件 | (gdb) file filename |
gdb -tui <文件名> | - | 以图形界面显示gdb调试,可以看源代码 | |
r | run | 运行被调试的程序,如果当前没有断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处 | (gdb) r |
|
examine |
查看内存 n:表示要显示内存的长度 f:表示显示方式 b:表示一个地址单元的长度 <addr>: 要查看的地址 |
显示方式: x 按十六进制格式显示变量。 d 按十进制格式显示变量。 u 按十进制格式显示无符号整型。 o 按八进制格式显示变量。 t 按二进制格式显示变量。 a 按十六进制格式显示变量。 i 指令地址格式 c 按字符格式显示变量。 f 按浮点数格式显示变量。
地址单元的长度: b表示单字节, h表示双字节, w表示四字节, g表示八字节
(gdb) x /10xw 0x12345678 作用:查看0x12345678的内存,总共10个单位内存,以十六进制查看,每个单位为4个字节 |
c | continue | 继续执行被调试程序,直到下一个断点或程序结束 | (gdb) c |
l | list | 查看源代码 | l 15: 显示第15行附近的10行代码 l main: 显示main函数附近的10行代码 如果不带参数,将继续显示上次代码后的10行 |
b | break | 设置断点 | b 24或cl 24: 在24行设置/取消断点 |
cl | clear | 取消断点 | b main或 cl main: 在main()函数设置取消断点 |
b <行号> | break | 在某一行设置断点 | |
b <函数名称> | break | 在某个函数设置断点 | |
b <代码地址> | break | 在某一内存地址处设置断点 | |
d [编号] | delete | 删除指定编号的断点 | |
k | kill | 杀死正在调试的程序 | 停止调试 |
disp | display | 跟踪查看某个变量的值 | disp x: 每次程序暂停,输出x的值 |
u | until | 让程序运行到指定位置 | u 9: 运行到第九行,然后暂停 u search: 运行到search的入口,然后暂停 |
s | step | 单步调试。执行下一条语句,如果该语句为函数调用,则进入函数执行其中的第一条语句 | (gdb) s |
n | next | 执行下一条语句,如果该语句为函数调用,不会进入函数内部执行(即不会一步步地调试函数内部语句) | (gdb) n |
finish | finish | 跳出当前进入的函数 | (gdb) finish |
p | 打印变量的值 | (gdb) p | |
i b | info breakpoints | 查看所有的断点 | (gdb) i b |
bt | backtrace | 查看函数调用信息(堆栈) | (gdb) bt |
q | quit | 退出调试 | (gdb) q |
wa | watch | 使用观察点可以使得当某表达式的值发生变化时,程序暂停执行 | (gdb) watch 变量 |
aw | awatch | 变量被读写时都会停下来 | aw i: 当i被读写的时候都会停下来 |
rw | rwatch | 变量被读的时候停下来 | rw i: 当i被读的时候停下来 |
ig | ignore | 让断点在前n次到达时都不停下来 | ig 3 12: 让编号为3的断点在前12次到达时都不停下来 |
cond | condition | 给断点加一个条件。 | cond 2 i > 3: 2号断点只有在i>3时才起作用 |
comm | commands | 在某个断点处停下来后执行一段gdb命令 | 在断点4停下来后执行一段命令。输入这条命令后,就输入要执行的内容 |
set logging on | - | 输出调试信息到gdb.txt | (gdb) set logging on |
set print elements 999 | - | 修改打印字符串长度命令 | (gdb) set print elements 999 |
shell + command | - | 在gdb中执行shell命令 |
(gdb) shell ls |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)