先确认有当前镜像的vmlinux文件,插入sdcard后,内核出现问题会触发sysdump,sysdump内容保存在YLOG文件夹。
将vmlinux,crash_arm(vendor/sprd/tools/crash),yslog下面的文件放在同一文件夹,如

cat sysdump.core.* >sysdump
./crash_arm vmlinux sysdump
bt //该命令用于获取当前线程的调用堆栈

log //该命令用于打印出内存的日志信息

遇到vmlinux和sysdump不一致的情况,可通过下面的命令确认
strings sysdump |grep "Linux version"
strings vmlinux |grep "Linux version"
提示缺少库文件libncurses.so.5
./crash_arm64: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
sudo apt install libncurses5
如果平台不带sdcard,可以使用电脑工具Logel抓取sysdump,注意关闭展讯其他工具。还不行,可以勾选Option->Tool Configure->On/Off->Log Port。
本文详细介绍如何在嵌入式系统中使用vmlinux文件和crash_arm工具进行内核故障排查,包括sysdump的触发与收集,以及如何通过特定命令获取调用堆栈和内存日志信息。
644

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



