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

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!

嵌入式软件开发中,最常用的调试方法就是:log打印调试法及在线调试。log打印调试法相关文章:bug解决不了?使用日志法

开发STM32时,我们有IDE可以用,IDE中已经集成有调试器,配合仿真器使用起来很方便。而在Linux应用程序的开发中,常常直接在命令行使用gdb进行调试,或者可以使用VSCode+gdb进行调试。

gdb调试相关文章:GDB调试器原来那么简单

而在嵌入式Linux中,我们如何对开发板上的arm程序进行调试呢?

我们可以使用VSCode+gdb+gdbserver来调试我们arm开发板上的arm程序。下面简单介绍一下使用方法,前提是开发板与PC可以进行无线/有线通信。相关文章:一次关于WiFi 驱动移植的总结复盘

1、准备arm格式的gdb及gdbserver工具

一般交叉编译工具链里都包含有,如果没有则需要自己下载gdb源码进行交叉编译,gdb下载源码下载链接:

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

涉及到交叉编译的文章:

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

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

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

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

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

其中需要修改"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路径下:

4、启动gdbserver

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

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

如:

5、启动vscode的gdb进行调试

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

以上就是本次的分享。

码字不易,如过文章对你有帮助,麻烦帮忙三连支持,谢谢大家!

温馨提示

由于微信公众号近期改变了推送规则,如果您想经常看到我们的文章,可以在每次阅读后,在页面下方点一个「赞」或「在看」,这样每次推送的文章才会第一时间出现在您的订阅列表里。

猜你喜欢:

嵌入式大杂烩文章精选

分享10道有趣的C语言面试题及答案

一次关于WiFi 驱动移植的总结复盘

干货 | 浅析gcc、arm-linux-gcc和arm-elf-gcc的关系

芯片短缺,如何快速上手并替换一款MCU

分享一位嵌入式前辈的高效学习法

在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总。

文章都看完了不点个

VSCode提供了集成的调试工具,其中包括对GDB的支持。要在VSCode使用GDB进行调试,首先需要配置调试器。可以通过安装C/C++插件来获得对GDB的支持。然后,按照以下步骤进行配置: 1. 打开VSCode并打开要调试的项目。 2. 在左侧的活动栏中,点击调试图标(调试镜像)以打开调试视图。 3. 在调试视图中,点击顶部工具栏中的"齿轮"图标,这将打开"launch.json"文件。 4. 在"launch.json"文件中,可以看到一个 "configurations" 数组,其中包含了不同的调试配置。在这里,我们需要添加一个GDB配置。 5. 在 "configurations" 数组中添加以下配置: ``` { "name": "GDB", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/your_program", "miDebuggerPath": "gdb", "miDebuggerArgs": "-g", "cwd": "${workspaceFolder}" } ``` 确保将 "your_program" 替换为你要调试程序的路径。 6. 保存并关闭 "launch.json" 文件。 7. 现在,你可以在VSCode中点击调试视图左侧的绿色播放按钮来启动GDB调试器。 8. 在调试器启动后,你可以设置断点,单步执行代码,查看变量和堆栈等。 通过上述步骤,你就可以在VSCode使用GDB进行调试了。请确保你的项目已经正确配置,并且你已经正确安装了GDB。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [一文掌握vscode远程gdb调试](https://blog.csdn.net/zong596568821xp/article/details/124338072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式大杂烩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值