本文仅用于个人记录。
参考:https://zhuanlan.zhihu.com/p/697007274
1. 安装插件
ROS2
C/C++
2. 编译指令
            
            
              bash
              
              
            
          
          colcon build \
    --cmake-args  -DCMAKE_BUILD_TYPE=RelWithDebInfo\
    -Wall -Wextra -Wpedantic \
    -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
    --symlink-install
        指令说明 :



3.配置文件 settings.json
完成编译后,使用 F1 打开指令栏,输入:ROS: Update C++ Properties 然后确认。
这会帮你在 .vscode 文件夹下生成 c_cpp_properties.json 和 settings.json 文件。这会帮你的 vscode 理解项目依赖的路径。
不用在意c_cpp_properties,因为我采用的是clangd。只需要修改settings.json:
settings.json
            
            
              xml
              
              
            
          
          {
    "C_Cpp.intelliSenseEngine": "disabled",
    "clangd.arguments": ["--compile-commands-dir=."],
    "clangd.completion.completeBrackets": false,
    "ROS2.distro": "jazzy",
    "ROS2.rosSetupScript": "${workspaceFolder}/install/setup.bash",
}
        重点是最后两行, 用的是ROS2的jazzy,和对应的setup.bash
4. 调试启动程序 launch
launch.json
单一节点的启动程序
            
            
              xml
              
              
            
          
          {
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Debugger",
            "request": "launch",
            "type": "cppdbg",
            "cwd": "/",
            "program": "${workspaceFolder}/install/p2v/lib/p2v/lio_node"
        }
    ]
}
        5. 开始调试
使用 ctrl+shift+d 打开 Run and debug 栏,选择你的配置文件,然后点击 F5 就可以对程序进行断点调试了。对于多个节点的程序调试起来也没问题。
可以打断点、或者在断的地方进行输出调试。