【学习记录】vscode+ros2+cpp调试

本文仅用于个人记录。

参考: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 就可以对程序进行断点调试了。对于多个节点的程序调试起来也没问题。

可以打断点、或者在断的地方进行输出调试。

相关推荐
无心水几秒前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
蒸蒸yyyyzwd14 分钟前
邓明 Agent 系统面试-意图识别学习笔记
笔记·学习
La Pulga5 小时前
【FreeRTOS源码学习笔记】空闲任务与阻塞延时
笔记·mcu·学习·嵌入式·freertos·实时操作系统
蒸蒸yyyyzwd5 小时前
秋招学习笔记 day106
笔记·学习
小李不想当小白6 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
lisw0510 小时前
作为人类代理的大语言模型及其角色分类!
人工智能·学习·语言模型
Z21-X10 小时前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生
坤坤子吖10 小时前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室
linux·服务器·网络·c++·笔记·学习
Rabitebla10 小时前
【Linux学习笔记】进程篇(九):进程的创建与退出——fork、写时拷贝与退出码
linux·c++·笔记·学习
楚山之石10 小时前
【MRM】CAPLEX 对比剂灌注 MRI 开源术语库:ISMRM OSIPI 共识报告
图像处理·人工智能·学习·mri