首页 > 系统相关 >使用 VSCode 远程 图形化 GDB 调试 嵌入式linux

使用 VSCode 远程 图形化 GDB 调试 嵌入式linux

时间:2022-12-12 11:57:56浏览次数:79  
标签:1.1 VSCode gdbserver vscode gdb ssh linux 图形化

 

目录标题

引言

之前说了,通过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

在这里插入图片描述

 

标签:1.1,VSCode,gdbserver,vscode,gdb,ssh,linux,图形化
From: https://www.cnblogs.com/lidabo/p/16975653.html

相关文章

  • vscode Remote-SSH 相关问题
    1.远程连接时一直提示重复输入密码在vscode菜单栏里点击"查看"->"命令面板"输入remote-ssh:killvscodeserveronhost选择连接有问题的host重新输入密码即......
  • linux命令行代理神器-proxychains
     https://zuoer.xin/?post=72 什么是 proxychains-ng项目主页:https://github.com/rofl0r/proxychains-ng proxychains-ng 介绍proxychainsng(newgeneration......
  • Linux中的一些命令
    1.新增新用户lili,不允许登录系统,用户ID为3000===useradd-u3000-s/sbin/nologinlili2.循环创建目录/www/wwwroot/html/test===mkdir-p/www/wwwroot/html/testcd/ww......
  • linux下,mysql无法远程连接
    1、确认用户是否只允许localhost访问;  在linux下登录mysql   mysql-uroot-p密码;   usemysql;   select`host`,`user`from`user`查看你......
  • [ Linux ] 可重入函数,volatile 关键字,SIGCHLD信号
    1.可重入函数在数据结构初阶时我们学习过链表,其中当然也学习过链表头插。在此我们复习一下链表头插,我们使用画图来演示。newnode->next=head->next;head->next=newnode;......
  • linux安装jdk
    1、安装包下载wget--no-check-certificate--no-cookies--header"Cookie:oraclelicense=accept-securebackup-cookie"http://download.oracle.com/otn-pub/java/jdk/......
  • Linux
    Linux的文件bin放二进制文件dev放外接设备,不能直接使用需要被挂载etc配置文件Home除了root用户的其他用户的家目录,类似于windows的user/用户目录proc表示进程,该目录存......
  • Ubuntu用户得到一个新的Linux Kernel安全更新, 修补10个漏洞
    Canonical今天公布了关于新的Ubuntu Linux内核安全更新的细节,这些更新适用于他们支持的所有Ubuntu版本,以解决由各种研究人员发现的多达10个安全漏洞。新的Ubuntu......
  • Linux IO 监控与深入分析
    引言接昨天电话面试,面试官问了系统IO怎么分析,当时第一反应是使用iotop看系统上各进程的IO读写速度,然后使用iostat看CPU的%iowait时间占比,(%iowait:CPU等待输......
  • 使用这个多功能的 Linux 命令转换音频文件
    SoXSoundExchange甚至可以为你的音频文件添加特效。我工作需要使用音视频媒体,不管你处理哪种媒体,你肯定知道标准化是一种有价值的工具。就像你不会试图把一个分数加到一......