- 概念参见三步搞定ROS进程崩溃-Core Dump,详情如下
- sudo apt install systemd-coredump
- sudo apt install ros-noetic("DISTRIBUTION")-rosmon 使用monlaunch代替roslaunch后启动节点,可用如下命令代替gdb传统方式对coredump文件分析
coredumpctl gdb COREDUMP_PID=xxxxx
然后使用bt或者bt full查看函数栈之Backtraces定位某一行代码
补充博客参见"在 Linux 上创建并调试转储文件"使用systemd-coredump,或参见本地文件(Figures/notes/分析核心转储文件.png)
- sudo vim /etc/systemd/coredump.conf 注意取消注释,ProcessSizeMax,ExternalSizeMax与JournalSizeMax
[Coredump]
#Storage=external
#Compress=yes
ProcessSizeMax=8G
ExternalSizeMax=8G
JournalSizeMax=8G
#MaxUse=
#KeepFree=