vscode代码调试配置
单线程简单程序调试:
直接使用cmake的插件即可进行简单程序的调试,不可给可执行程序添加参数。
多线程复杂程序调试:
1.首次创建launch.json文件
按下ctrl+shift+p ,输入debug,选择Debug:Add Configuage,选择C++(GDB-LLDB)然后选g++,这样就创建了launch.json文件。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/Examples/Monocular/mono_tum", //可执行文件目录
"args": [ //给可执行程序添加参数
"Vocabulary/ORBvoc.txt",
"Examples/Monocular/TUM1.yaml",
"/home/jiqiang/Dataset/SLAM/rgbd_dataset_freiburg1_xyz"
],
"stopAtEntry": true, //在程序入口自动停下
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "Build",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
2.编写tasks.json文件内容
主要实现在调试时,自动完成程序的编译操作。
{
"version": "2.0.0",
"options": {
"cwd": "${workspaceFolder}/build"
},
"tasks": [
{
"type": "shell",
"label": "cmake",
"command": "cmake",
"args": [
".."
]
},
{
"label": "make",
"group": {
"kind": "build",
"isDefault": true
},
"command": "make",
"args": [
]
},
{
"label": "Build",
"dependsOrder": "sequence", // 按列出的顺序执行任务依赖项
"dependsOn":[
"cmake",
"make"
]
}
]
}
CUDA程序调试:
1.创建setting.json文件
task是希望我们vscode每一次在用调试执行的时候,我们希望在调试之前把我们改过的东西给同步上去(make一遍)
按下ctrl+shift+p ,输入task,选择Configure Task,点到最下面Create task.json file from template ,选择others
将文件内的“command”:及其后面内容改为:
"command":"make -j16"
2.创建launch.json文件
按下ctrl+shift+p ,输入debug,选择Debug:Add Configuage,选择CUDA C++(CUDA-GDb)这个debug,这样就创建了launch.json文件。
将文件内的“program”:及其后面内容改为:
"${workspaceFolder}/ 可执行文件 "
这样就可以实现程序的调试了。
qq_56951963: transformupdate也有一个融合
m0_68715188: 我就是用的那个适配的,不知道为啥出现这问题
Jiqiang_z: 我还没怎么用过虚拟机,所以这方面我也不太了解。
Jiqiang_z: lio-sam源代码不适配Mid 360的,Mid 360 是固态激光雷达,LIO-SAM中使用的雷达是多线激光雷达,你可以去参考一下github上关于LIO-SAM适配MID-360的版本,点云预处理方式会有不同。
冰火287: 大佬,我的是虚拟机,rviz没有显示,会不会是虚拟网络编辑器的问题