GDB 简介与使用示例:程序调试从这里开始!

GDB调试器介绍及基本使用步骤

关于学习嵌入式来说,无疑是学的东西很多,记得东西很多,东西写在这里,主要让我自己能够重构问题,以及还有同行者的指点。

一、GDB 是什么?

在我们写程序的过程中,不可避免地会遇到程序崩溃变量异常逻辑错误这些情况。尤其对于社会工作者中从事技术辅助岗位的朋友或刚开始学习编程的小白来说,一段程序“运行错了但不知道哪里错”的时候,简直令人抓狂!

这时候,GDB(GNU Debugger 就是你的“放大镜”和“侦探工具”!

GDB 是一个开源的调试器,可以帮助我们:

  • 逐步执行程序
  • 查看变量的值
  • 设置断点
  • 分析程序为何崩溃(如段错误)

通俗点说:GDB 可以“暂停”程序的运行,让你看到程序“脑子里在想什么”


二、GDB 能干什么?核心功能介绍

功能作用说明
设置断点在某一行或函数暂停程序运行
单步执行一行一行地执行,查找逻辑错误
查看变量值查看当前变量内容,是否符合预期
查看调用栈查清当前执行位置是怎么走到这里的
修改变量在调试时临时更改变量值,验证逻辑
分析崩溃信息程序崩溃后追踪是哪一行出错了

三、GDB 的基本使用步骤(以 C 语言为例)

1. 准备一段 C 程序(例子很简单)

#include<stdio.h>

int main()

{  int a = 10;

   int b = 0;

   int c = a / b; // 除以 0 会导致崩溃

   printf("Result is: %d\n", c);

   return0;

}

2. 编译时加上 -g 选项(生成调试信息)

gcc -g test.c -o test

3. 启动 GDB 调试

gdb ./test

进入 GDB 后,会看到提示符:

(gdb)


四、常用命令举例(小白上手无压力)

命令说明
run运行程序
break 行号/函数名设置断点,如 break 5、break main
next执行下一行(不进入函数内部)
step进入函数内部逐步执行
print 变量名查看变量的值
backtrace(简写:bt)打印调用栈信息(程序崩溃时使用)
quit退出 GDB

使用演示:查看程序崩溃原因

(gdb) run

输出:

Program received signal SIGFPE, Arithmetic exception.

这说明程序发生了“浮点异常”,也就是除以 0。

接着输入:

(gdb) backtrace

得到如下信息:

#0 main () attest.c:6

表示问题出现在第 6 行。

继续查看变量:

(gdb) print a

你会立刻明白:int c = a / b; 中的 b == 0 是罪魁祸首!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

平凡灵感码头

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

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

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

打赏作者

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

抵扣说明:

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

余额充值