良许Linux教程网 干货合集 手把手教你使用VSCode + gdb + gdbserver调试ARM程序

手把手教你使用VSCode + gdb + gdbserver调试ARM程序

在嵌入式软件开发中,最常用的调试方法之一是使用 log 打印调试和在线调试。关于 log 打印调试的相关文章可以参考:bug解决不了?使用日志法

在开发 STM32 时,我们通常会使用集成开发环境(IDE),其中已经集成了调试器,并且可以与仿真器配合使用,非常方便。而在 Linux 应用程序的开发中,常常直接在命令行使用 gdb 进行调试,或者可以使用 VSCode+gdb 进行调试。

关于 gdb 调试的相关文章可以参考:GDB调试器原来那么简单

那么在嵌入式 Linux 中,我们如何调试开发板上的 ARM 程序呢?

我们可以使用 VSCode+gdb+gdbserver 的组合来调试嵌入式 Linux 开发板上的 ARM 程序。下面简要介绍一下使用方法,前提是开发板与个人电脑可以进行无线或有线通信。关于此内容的相关文章可以参考:一次关于WiFi 驱动移植的总结复盘

1、准备 ARM 格式的 gdb 和 gdbserver 工具

一般来说,交叉编译工具链中已经包含了这两个工具,如果没有的话,您需要自己下载 gdb 的源码进行交叉编译。您可以在以下链接下载 gdb 的源码:

http://www.gnu.org/software/gdb/download/

涉及到交叉编译的文章:

干货 | protobuf-c之嵌入式平台使用

实用 | 一个高性能通信库的简单使用分享

这里我使用的是交叉编译工具链里的gdb及gdbserver,如:

image-20231003212633513
image-20231003212633513
image-20231003212637799
image-20231003212637799

2、创建launch.json文件并修改

我们需要创建vscode的launch.json文件并进行一些修改:

image-20231003212642009
image-20231003212642009
image-20231003212647867
image-20231003212647867
image-20231003212654634
image-20231003212654634

其中需要修改”program”,这是我们需要调试的程序,即我们交叉编译好的程序。还需要添加如下两个键值对:

"miDebuggerPath:"/opt/rv1126/bin/arm-linux-gnueabihf-gdb"
"miDebuggerServerAddress":"192.168.3.12:9001"

其中,miDebuggerPath表示的是arm格式gdb的路径;miDebuggerServerAddress表示的是我们server端的地址,如:192.168.3.12为开发板的ip,9001为端口号,可自行设置,其范围为:0~655360~1023 的端口一般由系统分配给特定的服务程序。

3、把gdbserver传到开发板上

我们需要交叉编译器路径下的gdbserver传到开发板上,如我这里放到开发板的/usr/bin路径下:

image-20231003212659294
image-20231003212659294

4、启动gdbserver

我们首先需要启动开发板上的gdbserver,pc端才能连接进行调试,格式为:

gdbserver  开发板ip:端口号  要调试的程序

如:

image-20231003212703656
image-20231003212703656

5、启动vscode的gdb进行调试

最后,启动vscode的gdb即可进行调试。如:

image-20231003212708182
image-20231003212708182
image-20231003212713889
image-20231003212713889

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部