VSCode 搭建 Arm 远程调试环境的步骤详解
作者:Young 发布时间:2023-06-27 08:54:36
简介
前提条件:
确保本机已经安装 VS Code。
确保本机已安装 SSH client, 并且确保远程主机已安装 SSH server。
VSCode 已经安装了插件 C/C++。
本次搭建的环境:
主机:windows 10
服务器:ubuntu 16.04
VSCode 版本:February 2020 (version 1.43)
Arm:海思 3559A (已配置好编译工具链和 gdb server)
连接远程主机
Remote Development
首先安装 Remote Development 插件,安装完成之后:
如上图所示,输入:Remote-SSH:Connect to Host->Configure SSH Hosts->选择一个config,配置信息:
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host Server
HostName 10.10.1.111
User name
其中:
Host: 远程主机名称。
HostName: 远程主机 IP。
User: 连接用户名。
输入完毕后保存,左侧会出现配置好的信息,右键登陆,可能需要密码:
插件安装
连接到 server 后会发现,安装的插件分为两栏,可以在远程服务器安装需要的插件:
远程主机命令行
Ctrl + ~ 打开终端窗口,VS Code 连接到远程主机后,就可以直接使用终端窗口在远程主机上执行终端命令。
arm 远程调试
VSCode 配置
配置 gdb 的配置文件 launch.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "cppdbg",
"request": "launch",
"name": "Debug for test",
"skipFiles": [
"<node_internals>/**"
],
"args": [],
"program": "${workspaceFolder}/build/bin/test.debug",
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"miDebuggerPath":"/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gdb",
"miDebuggerServerAddress": "192.168.172.110:1234"
}
]
}
type:调试的类型
name:配置文件的名字
request:配置文件的请求类型,有 launch 和 attach 两种,具体看官方文档
program:可执行文件的路径和文件名称
args:主函数调用时传入的参数
stopAtEntry:设为true时程序将暂停在程序入口处
cwd:调试时的工作目录
externalConsole:调试时是否显示控制台窗口
MIMode:指定 VS Code 连接的调试器,必须为 gdb 或者 lldb
miDebuggerPath:调试器路径
miDebuggerServerAddress: 板子 ip
arm 上运行 gdb server
./gdbserver :1234 test.debug
开始调试
VSCode 按 F5 开始调试:
断点设置,变量、栈查看:
来源:https://www.cnblogs.com/xiaojianliu/p/12614408.html


猜你喜欢
- ForkJoin简介Fork/Join框架是Java 7提供的一种用于并行执行任务的框架,它将大任务分解为若干个小任务,并行执行这些小任务,
- 效果展示如下所示:实时监控redis环境信息和日志列表Redis配置在windows下安装的redis,在安装目录找到redis.windo
- 在前面仿华为加载动画、仿网易音乐听歌识曲-麦克风动画中,我们通过绘图的基础知识完成了简单的绘制。在本例中,我们将绘制常见的验证码。一、效果图
- XmlTextWriter类允许你将XML写到一个文件中去。这个类包含了很多方法和属性,使用这些属性和方法可以使你更容易地处理XML。为了使
- Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难
- 客户端代码:/// <summary>/// 批量上传图片/// </summary>/// <param n
- 对象内存分配与回收策略对象的内存分配,往大方向讲,就是在堆上分配〔但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配),对象主要分配在
- 官方的C/C++插件是支持使用.clang-format配置文件进行自定义风格代码格式化的,无需另外安装clang-format插件。但是使
- 本篇我们讲解下使用spring创建bean的几种方式,创建bean,也可以叫组件注册,就是把单例bean放到spring容器中。我们定义如下
- 本文实例为大家分享了android中NFC读写功能的具体代码,供大家参考,具体内容如下首先检查一下设备是否支持NFC功能private vo
- Android Build类的详解及简单实例一、类结构:java.lang.Object? android.os.Build二、类概述:从系
- 前言前段时间碰到了中转文件的需求,需要使用HttpClient中转一下文件,过程为:在实现这个需求的过程中就用得到了MultipartFil
- Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为fi
- Android中双击返回键退出程序1.在MyAppliction中(继承Application) //运用list来保存们每一个
- 一:需求详情:OpenOffice.org 是一套跨平台的办公室软件套件,能在 Windows、Linux、MacOS X (X11)、和
- 一、@Value读取application.properties配置文件中的值application.properties配置文件fileN
- java swing GUI窗口美化一般我们写出的窗口是这个样子的,文本框和按钮都不是太美观,如果按钮是原色的就更难看了。今天发现了一个更加
- Spring中BeanFactory FactoryBean和ObjectFactory的三种的区别引言关于FactoryBean 和 Be
- 好程序员Java教程分享MyBatis Plus介绍:1.MyBatis Plus 介绍MyBatis Plus 是国内人员开发的 MyBa
- 题目描述这是 LeetCode 上的 768. 最多能完成排序的块 II ,难度为 困难。Tag : 「贪心」这个问题和&ldquo