由于主机上的gdb工具是基于命令行的,因此调试起来不方便,虽然可以加一些插件,但是依旧和IDE调试体验差很多。本文讲解如何使用 VSCode+gdbserver 来实现图形化界面的嵌入式 linux 程序调试。

1. VSCode设置

VScode安装远程调试插件“ 安装远程调试插件“ 安装远程调试插件“ 安装远程调试插件“ Remote Development”,点击“调试” ”,点击“调试” ”,点击“调试” ”,点击“调试” ->“添加配置”,然后 “添加配置”,然后 “添加配置”,然后 “添加配置”,然后 “添加配置”,然后 选择“ C++(GDB/LLDB)” 选中之后会在当前文件夹新建一个名为“ ”,会在当前文件夹新建一个名为“ launch.json”的文件,此文件会存放.vscode

{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0", "configurations": [

        {
            "name": "hello",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/hello",
            "args": [],
            "stopAtEntry":  false,  
            "cwd": "${workspaceFolder}", 
            "environment": [], 
            "externalConsole": false, 
            "MIMode": "gdb", 
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath":"/home/mikeyyu/linux/tools/gdb/bin/arm-linux-gnueabihf-gdb",
            "miDebuggerServerAddress": "192.168.1.55:2000"
        }
    ]
}

launch.json文件中有几个项目是需要我们根据实际情况配置的:

  1. name:调试的项目名 :调试的项目名 :调试的项目名
  2. program:需要调试的应用程序可执行文件路径。
  3. cwd:需要调试的应用程序源码路径。
  4. miDebuggerPath:此项需要手动添加,用于指定所使的交叉编译器
  5. miDebuggerServerAddress:此项需要手动添加,远程gdbserver服务器地址。

2. VSCode 调试方法

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

gdbserver 192.168.1.250:2000 hello 接下来点击vscode按钮后会自动链接到gdb服务上 image.png

由于是通过网络进行调试的,因此启动以后会有一个建立连接程可能需要几秒,启动之后如下图所示 image.png 在vscoe上方有控制程序功能按钮;一共有6个按钮;从左到右依次为:

  1. 继续按钮,快捷键为 F5,用于控制程序的运行和暂停到断点以后可按下此钮继续运行。
  2. 单步跳过按钮,快捷键为F10。
  3. 单步调试按钮,快捷键为 F11。
  4. 单步跳出按钮,快捷键为Shift+F11。
  5. 重启按钮,快捷键为Ctrl+Shift+F5。
  6. 停止按钮,快捷键为Shift+F5。