VSCode配置C++调试

420 阅读1分钟

VSCode配置C++调试

尝试过CMake插件的build和Debug功能,但是在一些情况下不好用,总是出问题,无法调试。

借助launch.jsontasks.json配置调试功能。

参考如下:

launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
             // 调试名称,会显示在Debug列表里
            "name": "omg",
            // 调试器类型,cppdbg代表C++调试,适用于gdb或者LLDB;cppvsdbg代表Visual Studio调试
            "type": "cppdbg",
            // launch表示启动程序并调试,attach表示程序已经运行,需要attach调试
            "request": "launch",
            // 调试目标程序路径
            "program": "${workspaceRoot}/output/bin/omg",
            // 需要给调试程序传入的参数
            "args": [
                "--model",
                "/code/output/pow_4d_1/pow_4d_1.onnx",
                "--config",
                "/code/output/pow_4d_1/input_cfg_test.yml",
            ],
            // 是否在程序入口暂停
            "stopAtEntry": false,
            // 调试程序工作目录
            "cwd": "/npu/users/z0332/work1/net_test/output/pow_4d_1/temp",
            // 调试程序环境变量
            "environment": [
                {
                    "name": "LD_LIBRARY_PATH",
                    "value": "${env:LD_LIBRARY_PATH}:${workspaceRoot}/output/lib"
                }
            ],
            // 指定VSCode将要连接的调试器类型。这个字段的值必须是gdb或lldb
            "MIMode": "gdb",
            // 定义一系列在 GDB 或 LLDB 调试器启动后、开始执行用户程序之前要执行的命令
            "setupCommands": [],
            // 指定在启动调试会话之前要执行的任务,该任务定义在tasks.json中,字段值与tasks.json中的"label"字段一致
            "preLaunchTask": "build"
        }
    ]
}

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            // 唯一标识符,与preLaunchTask中用到的字段一致
            "label": "build",
            // 任务类型,是在shell中执行,还是一个进程
            "type": "shell",
            // task具体执行的命令
            "command": "./build.sh",
            // 一些可选项
            "options": {
                // 执行目录
                "cwd": "${workspaceRoot}"
            }
        }
    ]
}