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在调试方面给我们带来的便利。
希望本文对大家有帮助,最后欢迎大家关注我的微信公众号《嵌入式三分钟》
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/TIME_LEAF/article/details/142891221
今日推荐