在VSCode上调试ROS2 C++节点

在VSCode上调试ROS2 C++节点

说明

这是一个关于如何使用VSCode调试ROS2 C++节点的小教程。

需求

本实现使用了以下工具:

  • ROS2 Foxy
  • Ubuntu 20.04
  • Visual Code 1.79.1
  • C/C++ VSCode extension

调试

一旦你的C++代码正确实现(至少可以编译),首先要做的是编译软件包并导出符号(允许你在需要停止代码的地方设置断点):

1
2
3
- cd ros_ws
- colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
- source install/setup.bash

第二,我们需要启动GDB服务器以调试CPP代码。在这里,我们将使用localhost:port来创建服务器。您可以选择任何您想要的空闲端口。
1
ros2 run --prefix 'gdbserver localhost:3000' package_name executable_name

第三,我们需要在VSCode上创建一个launch.json文件。换句话说,我们将创建一个自定义的调试配置。在我们的情况下,创建一个GDB客户端并连接到服务器。

1) Open VSCode on your workspace.
2) Go to your side bar, ‘Run and Debug’ section.
3) Add a new configuration (Select C++ enviroment or any other)
4) On your launch.json file, put the following information

Launch.json file:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debugger",
"request": "launch",
"type": "cppdbg",
"miDebuggerServerAddress": "localhost:3000",
"cwd": "/",
"program": "[build-path-executable]"
}
]
}

  • name - 您的调试器配置的自定义名称
  • request - 在这种情况下我们希望启动客户端
  • type - 用于C++调试的cppdbg
  • miDebuggerServerAddress - 服务器路径:端口
  • cwd - 在哪里找到所有需要的文件。我们使用根目录,因为ROS、软件包和其他需要的文件分布在整个电脑上。
  • program - 将[build-path-executable]替换为你的可执行构建文件。你可以在启动服务器时在控制台上找到这个路径。

最后,正确地使用VSCode的按钮(F5)和面板选项来调试你的代码。


在VSCode上调试ROS2 C++节点
https://qiangsun89.github.io/2023/06/15/在VSCode上调试ROS2-C-节点/
作者
Qiang Sun
发布于
2023年6月15日
许可协议