VSCode配置C++调试
尝试过CMake插件的build和Debug功能,但是在一些情况下不好用,总是出问题,无法调试。
借助launch.json和tasks.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}"
}
}
]
}