GDB 调试搭建与使用

目录

  • 一、GDB 简介
  • 二、搭建嵌入式 Linux 的 GDB 调试环境
  • 三、如何使用 GDB 工具调试 C 程序
  • 四、VSCode + gdbserver 图形化调试

一、GDB 简介

在学习单片机、STM32 时,我们常常使用集成式 IDE 来进行调试,如:MDK、IAR。在嵌入式 Linux 领域我们最常用的就是 GDB 调试工具,通过 GDB 来调试嵌入式 C 程序。

1、什么是 GDB?

【答】:它是 UNIX/LINUX 操作系统下强大的程序调试工具,可以使用 gdb 来一行行的运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等。

2、GDB 调试和运行位置

由于嵌入式中芯片性能一般比较弱,所以直接在嵌入式系统中运行 gdb 不太现实。因此在 PC 上通过 gdb 在线调试运行在开发板上的嵌入式程序,需要:gdb 和 gdbserver,其中 gdb 是运行在 PC 上的,gdbserver 需要我们移植到开发板上。

(1)嵌入式系统中一般在 PC 端运行 gdb 工具,源码也是在 PC 端,源码对应的可执行文件放到开发板中运行。

(2)在开发板中运行 gdbserver,通过网络与 PC 端的 gdb 进行通信,然后进行在线代码调试。

二、搭建嵌入式 Linux 的 GDB 调试环境

一般交叉编译已经自带 gdb 和 gdbserver,因此我们可以直接将 gdbserver 拷贝到开发板根文件系统 /bin 目录下。
GDB 调试搭建与使用_第1张图片

三、如何使用 GDB 工具调试 C 程序

gdbserver <Ubuntu 的 IP 地址>:<自定义端口号> gdbtest       // 开发板命令行输入,启动开发板上的 gdbserver
arm-linux-gnueabihf-gdb gdbtest                          // Ubuntu 中输入,启动 gdb 调试工具
target remote <开发板 IP 地址>:<端口号与上述一致>          // Ubuntu 中输入,连接到开发板上

GDB 调试搭建与使用_第2张图片

四、VSCode + gdbserver 图形化调试

我们可以看到主机上的 gdb 工具是基于命令行的,因此调试起来不方便。接下来使用 VSCode+gdbserver 来实现图形化界面的嵌入式 linux 程序调试。

1、设置 vscode

(1)给 vscode 安装远程调试插件 “Remote Development”,点击 “调试” -> “打开配置”。

(2)会在 .vscode 目录下新建一个 “launch.json”,我们需要在 launch.json 中添加配置信息。

(3)launch.json 中添加配置信息:
GDB 调试搭建与使用_第3张图片
2、VSCode 调试方法

gdbserver 192.168.1.253:2001 gdbtest        // 开发板命令行输入,启动开发板上的 gdbserver

GDB 调试搭建与使用_第4张图片

你可能感兴趣的:(GDB 调试搭建与使用)