文章目录
- 一、启动GDB
- 二、GDB的基本命令
- 1. 显示代码
- 2. 运行程序
- 3. 设置断点
- 4. 单步执行
- 5. 查看变量和内存
- 6. 查看函数调用堆栈
- 7. 修改变量值
- 8. 退出GDB
一、启动GDB
在终端中,使用以下命令启动GDB并加载你的可执行文件:
gdb ./your_program
会进入以下界面:
二、GDB的基本命令
1. 显示代码
list
或 l
:显示源代码,默认显示当前位置附近的10行代码。
list/l 行号
:显示指定行号附近的代码。
list/l 函数名
:显示指定函数的源代码。
2. 运行程序
run
或 r
:开始运行程序。如果程序中设置了断点,则运行到第一个断点处暂停;如果没有设置断点,则程序会一直执行到结束。
continue
或 c
:继续执行程序,直到遇到下一个断点或程序结束。
3. 设置断点
break
或 b
:设置断点。
break 行号
:在指定行号设置断点。
break 函数名
:在指定函数开头设置断点。
break 文件名:行号
:在指定文件的指定行号设置断点。
break if 条件
:设置条件断点,只有当条件为真时,断点才会生效。
info breakpoints
或 info b
:查看所有设置的断点信息。
delete
或 d
:删除断点。
delete 断点编号
:删除指定编号的断点。
delete
:不带参数时,删除所有断点。
disable 和 enable
:禁用或启用断点。
disable 断点编号
:禁用指定编号的断点。
enable 断点编号
:启用指定编号的断点。
4. 单步执行
next
或 n
:执行下一行代码,不进入函数内部。
step
或 s
:执行下一行代码,如果当前行是函数调用,则进入函数内部。
finish
:执行完当前函数内的剩余指令,并返回到函数被调用的位置。
5. 查看变量和内存
print
或 p
:查看变量的值。
print 变量名
:显示指定变量的值。
print 表达式
:计算并显示表达式的值。
x
:检查内存的内容。
x/格式 地址
:以指定格式显示从指定地址开始的内存内容。
6. 查看函数调用堆栈
backtrace
或 bt
:显示当前的函数调用堆栈,包括函数名、参数和返回地址。
7. 修改变量值
set var 变量名 = 值
:在调试过程中修改变量的值。
8. 退出GDB
quit
或 q
:退出GDB。