查看gdb和xterm版本
gdb -v
xterm -v
安装gdb和xterm
sudo apt install xterm
sudo apt install gdb
编译
catkin_make -DCMAKE_BUILD_TYPE=Debug --only-pkg-with-deps [package_name]
// --only-pkg-with-deps 编译指定功能包
调试启动
roslaunch启动
<launch>
<node pkg="test_pkg" type="test_type" name="test_name" output="screen" launch-prefix=" gdb -ex run --args"/>
</launch>
rosrun启动
rosrun --prefix 'gdb -ex run --args' [package_name] [node_name]
断点
普通断点
break main.cpp:12
条件断点
break src/main.cpp:127 if cnt==10
函数断点
break funcName
设置临时断点
tbreak funcName
查看断点信息
info break
删除断点
delete | 删除所有的断点 |
delete 5 | 删除5号断点 |
delete 5 6 | 删除编号为5和6的两个断点 |
delete 5-7 | 删除编号为5~7的断点 |
delete 5-7 10-12 | 删除多个范围的断点,比如要删除编号为5~7和10~12的断点 |
clear test_fun | 删除所有的test_fun函数断点。如果有多个同名函数断点,那么这些同名函数断点都会被删除 |
clear main.cpp:107 | 删除main.cpp中第107行的断点 |
查看变量
print value
查看局部变量
info local_var
变量值的修改
set var=value
单步调试
单步执行
next
进入函数
step