VSCode+ssh+gdb远程进行嵌入式Linux调试

发布时间 2023-04-12 15:16:47作者: Gary1013

1、使用环境

win10 + Ubuntu16.04 + imx6u

2、使用步骤

(1)Remote-SSH

① 在VScode中安装如下插件。

  

 

 ② 进入远程资源管理器,然后新建远程连接。

  

输入ssh <远程主机User>@<ip地址>

 

选择window中c盘用户下的.ssh/config

 

出现如下内容

 

注:以上内容也可手动配置(删除远程ssh也可以在此文件下删除)

③:输入远程主机密码

 

参考内容:

VSCode使用 - Remote-SSH 配置说明

VScode 删除远程资源管理器中SSH TARGETS

(2)gdb调试

① 连接上远程主机后,在远程主机下安装gdb debug和C/C++插件

​​​​​

 

 

②打开测试代码,然后点击 运行->添加配置 ,选择GDB调试器。

 

 

 

出现launch.json配置文件,将文件内容替换为:

{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动", //配置名称,显示在配置下拉菜单中
"type": "cppdbg", //配置类型
"request": "launch", //请求配置类型,可以是启动或者是附加
"program": "/home/user/work/gdbtest", // linux上程序可执行文件的完整路径
"args": [], //传递给程序的命令行参数
"stopAtEntry": false,//可选参数,如果为true,调试程序应该在入口(main)处停止
"cwd": "${workspaceFolder}", //目标的工作目录
"environment": [], //表示要预设的环境变量
"externalConsole": false,//如果为true,则为调试对象启动控制台
"MIMode": "gdb",//要连接到的控制台启动程序
"setupCommands": [ //为了安装基础调试程序而执行的一个或多个GDB/LLDB命令
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"miDebuggerPath": "/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb", // linux上适合目标板的arm格式

// gdb程序路径,作为与目标板gdbserver通信的gdb client运行于linux服务器上
"miDebuggerServerAddress": "192.168.20.111:9988" //目标板上gdbserver监听的IP地址和端口号
}
]
}


其中,program,miDebuggerPath,miDebuggerServerAddress根据实际修改

program:需要调试的应用程序可执行文件路径(虚拟机路径)

miDebuggerPath:此项需要手动添加,用于指定所使用的交叉编译器 gdb路径(虚拟机路径)

miDebuggerServerAddress:此项需要手动添加,远程 gdbserver服务器地址,端口号可以随便写。

③ VSCode设置好以后就可以进行调试了,启动开发板上的 gdbserver,输入如下命令:

gdbserver 192.168.20.172:9988 gdbtest
④ vscode 运行-> 启动调试。