分析崩溃日志
ARCS系统运行由于软件存在缺陷,可能会致使控制器软件aubo_control
或者示教器软件aubo_scope
崩溃。为了方便定位到软件崩溃的问题并解决。我们在两个可执行程序(aubo_control
和aubo_scope
)中集成了崩溃日志生成库backward
和breakpad
,前者可以生成崩溃线程的简单堆栈信息(纯文本格式,可以直接阅读),而后者可以将崩溃时所有线程的对战信息以minidump
的格式保存,需要通过专门的工具minidump_stackwalk查看
aubo_control
崩溃日志保存目录:~/arcs_ws/.crash/aubo_control_xxxxxx
和~/arcs_ws/.crash/aubo_control/xxxxx.dmp
aubo_scope
崩溃日志保存目录:~/arcs_ws/.crash/aubo_scope/aubo_scope_xxxxxx
和~/arcs_ws/.crash/aubo_scope/xxxxx.dmp
拷贝
minidump_stackwalk
到/usr/bin
,如果不想污染系统目录也可以拷贝到其他目录,只有执行的时候能够索引到即可- 执行脚本
Usage: minidump_stackwalk [options] <minidump-file> [symbol-path ...]
Output a stack trace for the provided minidump
Options:
-m Output in machine-readable format
-s Output stack contents
-c Output thread that causes crash or dump only
-b Brief of the thread that causes crash or dump
cd ~/arcs_ws/log/.crash
minidump_stackwalk -c -s -b aubo_control/390c31bb-526c-4791-9247b68c-efff7da2.dmp /opt/arcs/0.28.0-alpha.29/.symbols
要注意替换 .dmp 文件(从aubo_control的崩溃文件中提取)和.symbols目录(替换ARCS版本)