【学习记录】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 就可以对程序进行断点调试了。对于多个节点的程序调试起来也没问题。

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

相关推荐
先生沉默先14 小时前
Nginx 反向代理学习:单端口统一访问多服务
学习·nginx·arcgis
LFly_ice16 小时前
学习React-24-路由传参
前端·学习·react.js
陈天伟教授17 小时前
基于学习的人工智能(3)机器学习基本框架
人工智能·学习·机器学习·知识图谱
毕设源码-钟学长17 小时前
【开题答辩全过程】以 高校课程学习评价系统设计与实现为例,包含答辩的问题和答案
学习
fruge19 小时前
从第三方库中偷师:学习 Lodash 的函数封装技巧
学习
lingggggaaaa21 小时前
免杀对抗——C2远控篇&C&C++&DLL注入&过内存核晶&镂空新增&白加黑链&签名程序劫持
c语言·c++·学习·安全·网络安全·免杀对抗
陈天伟教授1 天前
基于学习的人工智能(5)机器学习基本框架
人工智能·学习·机器学习
我先去打把游戏先1 天前
ESP32学习笔记(基于IDF):基于OneNet的ESP32的OTA功能
笔记·物联网·学习·云计算·iphone·aws
初願致夕霞1 天前
学习笔记——基础hash思想及其简单C++实现
笔记·学习·哈希算法
小女孩真可爱1 天前
大模型学习记录(五)-------调用大模型API接口
pytorch·深度学习·学习