如何在GDB回溯模式下运行colcon test批量测试包?
在GDB回溯模式下运行colcon测试的方法
当然可以在GDB回溯模式下运行这些colcon测试,你可以通过以下两种方式实现:
方法一:全局启用GDB回溯(所有测试包)
先设置环境变量,让colcon用GDB作为测试执行器,配置GDB在程序崩溃时自动打印回溯并退出:
export COLCON_TEST_EXECUTOR="gdb -ex run -ex bt -ex quit --args"
接着执行你的colcon测试命令:
colcon test --event-handlers console_direct+ --return-code-on-test-failure --packages-select package1 package2 ...
当测试程序崩溃时,GDB会自动输出调用栈回溯信息,之后退出继续执行下一个测试。
方法二:针对指定测试包启用GDB回溯
如果只想给特定包开启GDB调试,可以通过--ament-cmake-args传递启动前缀参数,仅对目标包生效:
colcon test --event-handlers console_direct+ --return-code-on-test-failure --packages-select package1 --ament-cmake-args -DTEST_LAUNCH_PREFIX="gdb -ex run -ex bt -ex quit --args"
额外说明
- 只有当测试程序发生崩溃(如段错误)时,GDB才会生成回溯信息;程序正常退出时不会输出回溯。
- 若需要保存回溯到文件,可修改GDB参数,比如添加
-ex 'set logging on',将日志写入gdb.txt文件。
内容的提问来源于stack exchange,提问作者Manumerous
相关产品推荐
相关产品推荐

