手把手教你使用VSCode + Gdb + Gdbserver调试ARM程序

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

[[403548]]

嵌入式软件开发中,最常用的调试方法就是:log打印调试法及在线调试。

开发STM32时,我们有IDE可以用,IDE中已经集成有调试器,配合仿真器使用起来很方便。而在Linux应用程序的开发中,常常直接在命令行使用gdb进行调试,或者可以使用VSCode+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",这是我们需要调试的程序,即我们交叉编译好的程序。还需要添加如下两个键值对:

  1. "miDebuggerPath:"/opt/rv1126/bin/arm-linux-gnueabihf-gdb" 
  2.  
  3. "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端才能连接进行调试,格式为:

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

如:

5、启动vscode的gdb进行调试

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

本文转载自微信公众号「嵌入式大杂烩」,可以通过以下二维码关注。转载本文请联系嵌入式大杂烩公众号。

 

责任编辑:武晓燕 来源: 嵌入式大杂烩
相关推荐

2022-07-22 12:45:39

GNU

2021-07-14 09:00:00

JavaFX开发应用

2022-04-19 10:45:28

自动化签名鸿蒙app操作系统

2022-12-07 08:42:35

2011-01-06 10:39:25

.NET程序打包

2024-03-18 18:07:38

VSCode插件文件

2021-08-02 07:35:19

Nacos配置中心namespace

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印机

2023-12-13 08:17:24

JPDAJavaDebug

2022-10-30 10:31:42

i2ccpuftrace

2021-03-12 10:01:24

JavaScript 前端表单验证

2020-05-15 08:07:33

JWT登录单点

2021-12-15 08:49:21

gpio 子系统pinctrl 子系统API

2021-01-19 09:06:21

MysqlDjango数据库

2015-04-02 11:22:29

2011-02-22 13:46:27

微软SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中断唤醒系统Linux 系统

2023-04-26 12:46:43

DockerSpringKubernetes
点赞
收藏

51CTO技术栈公众号