Cursor 调试C++ ego planner代码
2025-08-25
ROS
00

目录

装3个插件
build一下
配置调试

装3个插件

image.png

image.png

为了避免以后还装,可以把自己容器打包为镜像,下次用。

build一下

以Debug模式:

bash
展开代码
# 使用 Debug 模式构建 catkin_make -DCMAKE_BUILD_TYPE=Debug

配置调试

点这里:

image.png

然后点击创建 launch.json

Select debugger 选  C++ (GDB/LLDB)

image.png

在launch.json写上自己想调试的东西:

bash
展开代码
{ // 配置文件版本号 "version": "0.2.0", // 调试配置数组 "configurations": [ // 调试 ROS mockamap 节点 { // 配置名称,启动时显示 "name": "调试 ROS mockamap 节点", // 调试类型,C++ 选择 cppdbg "type": "cppdbg", // 启动方式,launch 表示启动新进程 "request": "launch", // 可执行文件路径 - 指向编译后的 ROS 节点 "program": "${workspaceFolder}/devel/lib/mockamap/mockamap_node", // 传递给程序的命令行参数 "args": [], // 是否在程序入口处暂停 "stopAtEntry": false, // 调试时的工作目录 "cwd": "${workspaceFolder}", // 传递给程序的环境变量 - 设置 ROS 环境 "environment": [ { "name": "ROS_MASTER_URI", "value": "http://localhost:11312" }, { "name": "ROS_PACKAGE_PATH", "value": "${workspaceFolder}/src:${env:ROS_PACKAGE_PATH}" } ], // 是否使用外部终端 "externalConsole": false, // 调试器类型,Linux 下用 gdb "MIMode": "gdb", // 调试器启动时的额外命令 "setupCommands": [ { // 启用 gdb 的漂亮打印,便于查看变量 "description": "为 gdb 启用漂亮打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], // 预启动任务 - 确保 ROS master 运行 "preLaunchTask": "启动 ROS master" } ] }

新建task.json写入:

bash
展开代码
{ "version": "2.0.0", "tasks": [ { "label": "catkin_make", "type": "shell", "command": "catkin_make", "args": ["-DCMAKE_BUILD_TYPE=Debug"], "group": {"kind":"build","isDefault":true}, "presentation": { "reveal": "always" }, "problemMatcher": "$msCompile" }, { "label": "启动 ROS master", "type": "shell", "command": "roscore", "args": ["-p", "11312"], "isBackground": true, "presentation": { "reveal": "always", "panel": "new" }, "problemMatcher": { "pattern": { "regexp": ".", "file": 1, "location": 2, "message": 3 }, "background": { "activeOnStart": true, "beginsPattern": ".*ROS Master.*", "endsPattern": ".*ROS Master.*" } } }, { "label": "编译 mockamap", "type": "shell", "command": "catkin_make", "args": ["--pkg", "mockamap", "-DCMAKE_BUILD_TYPE=Debug"], "group": "build", "presentation": { "reveal": "always" }, "problemMatcher": "$msCompile" } ] } // catkin_make -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=Yes

最后样子就是:

image.png

打开代码 src/uav_simulator/mockamap/src/mockamap.cpp

点击这种地方加断点:

image.png

点击这个地方调试:

image.png

bash
展开代码
1. 点击"调试 ROS mockamap 节点"按钮 ↓ 2. VS Code 执行 "启动 ROS master" 任务 ↓ 3. 在后台启动 roscore -p 11312 ↓ 4. 等待 ROS master 就绪 ↓ 5. 启动 GDB 调试器 ↓ 6. 加载 mockamap_node 可执行文件 ↓ 7. 设置 ROS 环境变量 ↓ 8. 开始调试程序

程序在断点位置停止后,观察变量:

image.png

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!