在 ROS 2 中使用 gdb 进行调试是排查程序问题的有效方法。以下是使用 gdb 调试 ROS 2 节点的详细步骤和示例:
1. 基本调试步骤
编译时启用调试信息
首先,确保在编译代码时添加了调试符号(-g 选项)。在CMakeLists.txt中设置:
cmake
set(CMAKE_BUILD_TYPE Debug) # 或 RelWithDebInfo
或者在编译时指定:
bash
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Debug
启动 gdb 调试 ROS 2 节点
方法 1:直接调试可执行文件
bash
# 首先 source 工作空间
source install/setup.bash
# 使用gdb启动节点
gdb --args ros2 run <package_name> <executable_name>
方法 2:调试 launch 文件中的节点
如果节点是通过 launch 文件启动的,可以在 launch 文件中为节点设置prefix参数:
python
运行
# 在launch文件中
Node(
package="your_package",
executable="your_node",
prefix="gdb -ex run --args" # 自动运行程序
)
然后正常启动 launch 文件:
bash
ros2 launch your_package your_launch_file.launch.py
2. gdb 常用调试命令
进入 gdb 环境后,可以使用以下常用命令:
命令 功能
run 或 r 启动程序
break <函数名/文件名:行号> 或 b &nb

最低0.47元/天 解锁文章
208

被折叠的 条评论
为什么被折叠?



