• 使用 VSCode 远程 图形化 GDB 调试 嵌入式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

    在这里插入图片描述

     
  • 相关阅读:
    0127 date dateformat calebdar
    0126 字符串缓冲区StringBuffer类 正则表达式
    0126 String类
    0125 java API object
    0125 匿名对象 内部类 包 代码块
    0123 final关键字,static 关键字
    0123 this关键字 super关键字
    0122面向对象 构造方法
    0122面向对象3 多态
    0120 面向对象2
  • 原文地址:https://www.cnblogs.com/lidabo/p/16370223.html
Copyright © 2020-2023  润新知