GDB基本使用指南

什么是 GDB?

GDB(GNU Debugger)是一个强大的调试工具,主要用于调试 C、C++ 和其他语言编写的程序。

它让我们可以监控、控制程序的执行,从而查找并修复错误。

安装 GDB

ubuntu上一条命令可以搞定:

sudo apt install gdb

测试用例

我们写个简单的代码作为测试用例:

  1 #include <stdio.h>
  2 
  3 int main() 
  4 {
  5     int var;
  6     var = 10;
  7     printf("var is %d\n", var);
  8     return 0;
  9 }

添加调试选项

为了能够使用GDB调试我们的代码,我们需要在编译时加上-g选项,从而添加调试信息:

gcc -g gdb_test.c -o gdb_test.out

启动 GDB

使用以下命令启动 GDB,并指定要调试的可执行文件:

gdb ./gdb_test.out

基本命令

1. 运行程序

最基础的,使用run命令执行程序:

(gdb) run

2. 设置断点

我们可以使用断点来暂停程序的执行,从而检查程序状态。

打断点的命令是 break ,可以指定函数名或行号:

(gdb) break 7           # 在第7行处暂停
Breakpoint 1 at 0x115c: file gdb_test.c, line 7.

需要先设置断点,再执行run

3. 查看当前断点

可以使用 info breakpoints 命令查看当前断点信息:

(gdb) info breakpoints
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x000000000000115c in main at gdb_test.c:7

4. 查看变量值

# 运行到断点
(gdb) run
Starting program: /home/ubuntu/gdb_test.out 

Breakpoint 1, main () at gdb_test.c:7
7	    printf("var is %d\n", var);

# 查看变量
(gdb) print var
$1 = 10

4. 继续执行

当程序在断点处暂停时,可以使用 continue 命令继续执行程序,直到下一个断点或程序结束:

(gdb) continue
Continuing.
var is 10
[Inferior 1 (process 139948) exited normally]

5. 单步调试

当程序在断点处暂停时,我们可以使用单步调试:

  • 单步执行:使用 steps命令逐行执行代码,遇到函数会进入函数内部:
(gdb) step
  • 下一步执行:使用 nextn命令逐行执行代码,但是遇到函数不会进入函数内部:
(gdb) next

6. 退出 GDB

要退出 GDB,可以使用 quitq命令:

(gdb) quit

小结

通过上面的操作,大家应该可以感觉到GDB在调试方面给我们带来的便利。
希望本文对大家有帮助。
本文首发于微信公众号《Linux在秋名山》,欢迎大家关注~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux在秋名山

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值