手把手教你使用VSCode + gdb + gdbserver调试ARM程序
Posted 嵌入式大杂烩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手教你使用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/
涉及到交叉编译的文章:
这里我使用的是交叉编译工具链里的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~65536
,0~1023
的端口一般由系统分配给特定的服务程序。
3、把gdbserver传到开发板上
我们需要交叉编译器路径下的gdbserver传到开发板上,如我这里放到开发板的/usr/bin路径下:
4、启动gdbserver
我们首先需要启动开发板上的gdbserver,pc端才能连接进行调试,格式为:
gdbserver 开发板ip:端口号 要调试的程序
如:
5、启动vscode的gdb进行调试
最后,启动vscode的gdb即可进行调试。如:
以上就是本次的分享。
码字不易,如过文章对你有帮助,麻烦帮忙三连支持,谢谢大家!
温馨提示
由于微信公众号近期改变了推送规则,如果您想经常看到我们的文章,可以在每次阅读后,在页面下方点一个「赞」或「在看」,这样每次推送的文章才会第一时间出现在您的订阅列表里。
猜你喜欢:
干货 | 浅析gcc、arm-linux-gcc和arm-elf-gcc的关系
在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总。
文章都看完了不点个吗
以上是关于手把手教你使用VSCode + gdb + gdbserver调试ARM程序的主要内容,如果未能解决你的问题,请参考以下文章
qemu+gdb+vscode 的一些神奇调试 tricks