DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

 

 

引言

之前说了,通过core dump找程序bug,但是有些时候排查问题的还是不够高效,命令行形式gdb还是太简陋了,在IDE debug代码打断点,查堆栈变量那些习以为常的东西,在gdb这里怎么用怎么不习惯,可视化操作不比敲命令行来的香吗?

最近正好研究了下vscode remote ssh + gdbserver 调试。相对来说体验比较像IDE了,基本的单步直接代码上打断点,条件断点变量监控堆栈显示那些已经算凑活了。

环境

我目前的环境主要包括三部分:

  • 日常使用的windows
  • 从同事那边拷过来的VM Linux虚拟机开发环境,纯做编译。
  • 目标嵌入式linux设备

目前基本工作流程是,在windows上通过vscode remote ssh 套件访问虚拟机做代码开发及编译工作,再nfs之类的工具将代码拷到目标嵌入式设备上运行。
工作基本都在windows上,虚拟机开机了就用不管了。

步骤

vscode remote ssh 配置

在这里插入图片描述
安装如图插件。
在这里插入图片描述
侧边栏会多出一个远程资源管理器。添加你要连接的ssh 地址就好了。
配置文件 里面会加上你添加的地址。

Host 1.1.1.1
	HostName 1.1.1.1
	User     username # 填写登陆远程服务器的用户的名字,这个一行需要手动添加

Linux编译机配置

我这边由于是同事那边考过来的现成环境,所以那些ssh,gdb都已经安装好了,开箱即用。没有的需要自行补上。

设备板端配置

没有gdbserver,先装gdbserver。

通过以下命令,启动gdbserver。

gdbserver localhost:9555 ./your_process_name

端口自己配,程序名字填自己程序的路径名字。

vscode launch设置

上面,板端gdbserver启动了,windows也能连接linux虚拟机,但是虚拟机的gdb还没和gdbserver对应上。这部分的工作也是windows上用vscode launch.json文件来配置。

在这里插入图片描述
侧边栏添加配置 。
在这里插入图片描述

        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "输入程序名称,例如 ${workspaceFolder}/a.out",  //改成自己的
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gdb",   // 需要自行添加,gdb的路径 
            "miDebuggerServerAddress": "1.2.3.4:9555",                                              //自行添加 gdbserver 的ip端口
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },

需要修改添加的实际上就三个字段
“program”
“miDebuggerPath”
“miDebuggerServerAddress”

调试

vscode 连接 ssh,按F5即可开始调试。
板端可以看到以下提示,说明已经愉快的进行调试了。

Listening on port 9555
Remote debugging from host 1.1.1.1

在这里插入图片描述

 
posted on   DoubleLi  阅读(1580)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2015-06-13 linux下串口的阻塞和非阻塞操作
2015-06-13 字符串中的转义字符与字符串的长度
2015-06-13 C语言的左位移能不能超过8位?
2015-06-13 拼接字符串常量
2014-06-13 Linux教程:如何在Linux下进行C++开发?
2014-06-13 boost.asio系列——socket编程
2014-06-13 boost.asio系列——buffer
点击右上角即可分享
微信分享提示