c_cpp_properties.json
代码环境,宏设置
defines 声明的宏,相当于代码浏览时,定义了 #define ENABLE_DL_MODEL
cmakelists.txt :: add_definitions(-DENABLE_DL_MODEL),向编译器添加预处理器定义,在C++代码中添加 #define ENABLE_DL_MODEL
bash
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/src/xxx_pkg/src"
],
"defines": [
"ENABLE_DL_MODEL"
],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
task.json
获取hmi_display 进程的路径信息
bash
{
"version": "2.0.0",
"tasks": [
{
"label": "source_env",
"type": "shell",
"command": "cd ${workspaceFolder}/../install && ./set_env.sh && LD_LIBRARY_PATH+=\":$PWD/lib/3rdparty/mlpack-3.4.2/lib:/home/user_name/catkin_ws/install/lib\" && export LD_LIBRARY_PATH"
},
{
"label": "get_install_path",
"type": "shell",
"command": "readlink -f /proc/$(ps -ef | grep hmi_display | grep -v grep | awk '{print $2}' | head -n 1)/exe 2>/dev/null | awk -F 'hmi/|/bin' '{if (NF>1) print $2}'",
"problemMatcher": []
}
]
}
launch.json
bash
{
"env": {
"install_path": "$(task:get_install_path)"
},
"configurations": [
{
"type": "bashdb",
"request": "launch",
"name": "Bash-Debug (hardcoded script name)",
"cwd": "${workspaceFolder}",
"program": "/home/uisee/catkin_ws/batch_abandon.sh",
"env": {
},
"args": []
},
{
"name": "gdb attach",
"type": "cppdbg",
"request": "attach",
"processId":"${command:pickProcess}",
// "program": "/home/user_name/catkin_ws/install/bin/global_planner",
"program": "/proc/${command:pickProcess}/exe",
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "gdb launch global_planner",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/../install/bin/global_planner", // 替换为你实际要调试的可执行程序的路径,可以使用相对路径或绝对路径
// "preLaunchTask": "source_env",
"args": [], // 如果你的程序需要命令行参数,可以在这里添加,例如 ["arg1", "arg2"]
"stopAtEntry": false, // 设置为 true 则程序会在入口点就停止,方便从头开始调试
"cwd": "${workspaceFolder}/../install/", // 当前工作目录,一般设置为项目文件夹
"environment": [
{
"name": "LD_LIBRARY_PATH",
"value": "${workspaceFolder}/../install/lib:${workspaceFolder}/../install/lib/3rdparty/qpOASES/lib:${workspaceFolder}/../install/lib/3rdparty/cyclonedds/lib:${workspaceFolder}/../install/lib/3rdparty/mlpack-3.4.2/lib:${workspaceFolder}/../install/lib/3rdparty/boost-1.69.0/lib:${workspaceFolder}/../install/lib/3rdparty/acados-0.1.3/lib:${workspaceFolder}/../install/lib/depend/iceoryx/lib:${workspaceFolder}/../install/lib/3rdparty/opencv33/lib:${workspaceFolder}/../install/lib/depend/cyclonedds/lib:${workspaceFolder}/../install/lib/depend/cuda-9.0/lib:${workspaceFolder}/../install/lib/depend/others/lib:$LD_LIBRARY_PATH"
}
],
"externalConsole": false, // 设置为 true 则会弹出一个外部控制台窗口,false则在VSCode的集成终端中显示输出
"MIMode": "gdb",
"miDebuggerPath": "gdb", // 这里假设gdb已经在系统的环境变量路径中,如果不是,需要填写gdb的完整路径
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "gdb launch local_control",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/../install/bin/local_control", // 替换为你实际要调试的可执行程序的路径,可以使用相对路径或绝对路径
// "preLaunchTask": "source_env",
"args": [], // 如果你的程序需要命令行参数,可以在这里添加,例如 ["arg1", "arg2"]
"stopAtEntry": false, // 设置为 true 则程序会在入口点就停止,方便从头开始调试
"cwd": "${workspaceFolder}/../install/", // 当前工作目录,一般设置为项目文件夹
"environment": [
{
"name": "LD_LIBRARY_PATH",
"value": "${workspaceFolder}/../install/lib:${workspaceFolder}/../install/lib/3rdparty/qpOASES/lib:${workspaceFolder}/../install/lib/3rdparty/cyclonedds/lib:${workspaceFolder}/../install/lib/3rdparty/mlpack-3.4.2/lib:${workspaceFolder}/../install/lib/3rdparty/boost-1.69.0/lib:${workspaceFolder}/../install/lib/3rdparty/acados-0.1.3/lib:${workspaceFolder}/../install/lib/depend/iceoryx/lib:${workspaceFolder}/../install/lib/3rdparty/opencv33/lib:${workspaceFolder}/../install/lib/depend/cyclonedds/lib:${workspaceFolder}/../install/lib/depend/cuda-9.0/lib:${workspaceFolder}/../install/lib/depend/others/lib:$LD_LIBRARY_PATH"
}
],
"externalConsole": false, // 设置为 true 则会弹出一个外部控制台窗口,false则在VSCode的集成终端中显示输出
"MIMode": "gdb",
"miDebuggerPath": "gdb", // 这里假设gdb已经在系统的环境变量路径中,如果不是,需要填写gdb的完整路径
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "gdb launch simulation_vehicle",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/../install/bin/simullation_vehicle", // 替换为你实际要调试的可执行程序的路径,可以使用相对路径或绝对路径
// "preLaunchTask": "source_env",
"args": [], // 如果你的程序需要命令行参数,可以在这里添加,例如 ["arg1", "arg2"]
"stopAtEntry": false, // 设置为 true 则程序会在入口点就停止,方便从头开始调试
"cwd": "${workspaceFolder}/../install/", // 当前工作目录,一般设置为项目文件夹
"environment": [
{
"name": "LD_LIBRARY_PATH",
"value": "${workspaceFolder}/../install/lib:${workspaceFolder}/../install/lib/3rdparty/qpOASES/lib:${workspaceFolder}/../install/lib/3rdparty/cyclonedds/lib:${workspaceFolder}/../install/lib/3rdparty/mlpack-3.4.2/lib:${workspaceFolder}/../install/lib/3rdparty/boost-1.69.0/lib:${workspaceFolder}/../install/lib/3rdparty/acados-0.1.3/lib:${workspaceFolder}/../install/lib/depend/iceoryx/lib:${workspaceFolder}/../install/lib/3rdparty/opencv33/lib:${workspaceFolder}/../install/lib/depend/cyclonedds/lib:${workspaceFolder}/../install/lib/depend/cuda-9.0/lib:${workspaceFolder}/../install/lib/depend/grpc/lib:${workspaceFolder}/../install/lib/depend/others/lib:$LD_LIBRARY_PATH"
}
],
"externalConsole": false, // 设置为 true 则会弹出一个外部控制台窗口,false则在VSCode的集成终端中显示输出
"MIMode": "gdb",
"miDebuggerPath": "gdb", // 这里假设gdb已经在系统的环境变量路径中,如果不是,需要填写gdb的完整路径
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}