[Debug] Vscode 远程调试配置

使用Vscode进行远程程序调试的配置

1. 需求

Host:交叉编译环境,可编译目标target上运行的程序或者库文件
Target:实际程序运行平台,运行Host交叉编译后的程序

2. 准备

  • 交叉编译好的可执行程序和(或)库文件,记可执行程序在Host和Target上的路径分别为 Host_exe_path, Target_exe_path
  • 配置Vscode

2.1 Vscode 配置

在Host上,打开Debug配置文件,一般为 工程根目录下的 launch.json,添加配置项如下:

...

{
            "name": "remote:exe_name",
            "type": "cppdbg",
            "request": "launch",           
            // 1. program 配置可执行程序在主机上的路径 Host_exe_path
            "program": "${workspaceFolder}/build/test_exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            // 2. Host 上找到交叉编译工具联中的 gdb 路径
            "miDebuggerPath": "/opt/gcc-arm-9.2-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gdb",
            // 3. Target 的IP地址以及 gdb server监听端口,2233是举例说明,可以是尚未使用的任意值,保证Host配置和Target上统一即可
            "miDebuggerServerAddress": "192.168.10.1:2233",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },

...

3. 调试

  1. 在Target上,进入到可执行程序目录,运行 gdbserver :2233 ./test_exe [args]
    此处的端口号2233与Host 上Vscode上配置一致即可;此时会发现此程序会阻塞在监听端口接口,等待Host debug的连接
  2. 在Host上,在Vscode界面,开启Debug,一般使能配置后,按F5即可
  3. 此时就可以在Target上看到程序运行起来了

4. 其他无关配置

4.1 关于Eigen库在Vscode调试时,无法直接显示其内容的解决办法。

  1. 下载 https://github.com/libigl/eigen/blob/master/debug/gdb/printers.py 文件,将此文件放置在任一路径,如 ~/.gdbExtensions,则文件全路径为 ~/.gdbExtensions/printers.py
  2. 更新默认gdb配置,在文件 ~/.gdbinit 中(若无,则新建),添加一下代码
python 
import sys 
sys.path.insert(0, '~/.gdbExtensions') 
from printers import register_eigen_printers 
register_eigen_printers (None) 
end

你可能感兴趣的:([Debug] Vscode 远程调试配置)