Linux下gdb调试之常用命令说明一

本文介绍使用GDB进行程序调试的基本步骤及常用命令。包括如何设置断点、查看变量值、跟踪函数调用栈等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. gdb调试前的开始

进行 gdb 调试程序的前提是,代码在编译阶段时,编译需带 -g 选项(调试选项),生成带调试信息的可执行程序。
调试程序命令(假如这里生成的目标程序为 test ):gdb test 或 gdb -silent test (其中 -silent 选项也可以用 -quiet 或 -q 代替)。
开始进行 gdb 调试工作,输入命令,如下所示:

gdb test

或输入如下命令:

gdb -q test

在这之后,就正式进入gdb 调试,接下来输入 start 或 run 命令开始运行程序(至此,程序还没有运行)。
当然,如果选择使用 run 命令开始运行程序,则需要设置调试的一些设置,例如设置断点,要监视的变量的添加等等一系列设置工作。

2. gdb调试之常用命令

(1) gdb调试之常用命令 1

调试指令作 用
(gdb) start执行被调试的程序,会执行至 main() 主函数的起始位置,即在 main() 函数的第一行语句处停止执行(该行代码尚未执行)
(gdb) run 或 (gdb) r自动执行程序,其会自动在第一个断点处暂停执行
(gdb) file 程序名装入想要调试的可执行文件。如果启动 GDB 调试器时未指定要调试的目标程序,这种情况下就需要再次手动指定。
(gdb) next 或 (gdb) n令程序一行代码,一行代码继续向下执行。
(gdb) continue 或 (gdb) c当程序在某一断点处停止运行后,使用该指令可以继续执行,直至遇到下一个断点或者程序结束
(gdb) step 或 (gdb) s执行下一行语句,如果有函数调用则进入到函数内部执行
(gdb) list 或 (gdb) l显示源程序代码的内容,包括各行代码所在的行号。
(gdb) list 函数名列出某个函数的源代码。
(gdb) print 变量 或 (gdb) p 变量=2输出或者修改指定变量或者表达式的值
(gdb) quit 或 (gdb) q终止调试

(2) gdb调试之常用命令 2

调试指令作 用
(gdb) b filename: line_number 或 break filename: line_number在某个文件的指定行设置断点
(gdb) b filename: 函数名 或 break filename: 函数名在某个文件的某个函数的入口处设置断点,即停住。
(gdb) delete 或 (gdb) delete n删除全部断点 / 删除n号断点。其中,n 为指定断点的编号
(gdb) clear location参数 location 通常为某一行代码行号或某个函数名。当 location 参数为某个函数名时,表示删除位于该函数入口处的所有断点。
(gdb) tbreak filename: 函数名 或 tbreak filename: 函数名设置临时断点,重启程序后消失
(gdb) backtrace 或 (gdb) bt查看函数调用的顺序(即函数调用栈信息)
(gdb) where 或 (gdb) info stack同 bt 命令,也是可以查看当前线程的调用堆栈。
(gdb) info frame查看当前函数调用的栈帧信息。
(gdb) info xxx查看寄存器、断点、观察点和信号等信息,xxx为需要查看的目标。例如,info registers:查看寄存器的值。 info watchpoints:列出当前所设置的所有观察点。 info breakpoints:显示设置的所有断点
gdb 调试常用命令接《Linux下gdb调试之常用命令说明二》博文说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值