分享
Linux内核崩溃?教你用crash_arm轻松解决!
输入“/”快速插入内容
Linux内核崩溃?教你用crash_arm轻松解决!
飞书用户3013
2024年12月16日修改
问题现象:当
SD
卡未完全插入时,内核已经检测插入了SD卡,此时立马弹出SD卡,会造成内核崩溃!
那么该如何解决呢?
1.查找
log
:
当内核发生崩溃时,产品会自动
重启
将内核崩溃的日志写到
log
中。
再敲命令:cat sysdump.* > sysdump.core 生成sysdump.core文件,后面查找出错代码时会用到。
2.利用crash_arm工具排查出错
cp
sysdump.core、vmlinux到/M901/vendor/sprd/tools/crash下,利用crash_arm工具查找出错的代码
在命令行输入./crash_arm sysdump.core vmlinux,根据给定的sysdump.core文件和vmlinux文件来执行一个
ARM
架构的程序崩溃分析。
可以看到错误是有一个 "Unable to handle kernel
NULL
pointer dereference at virtual address 000001db"
在内核中发生了一个无法处理的空指针解引用错误,虚拟地址是000001db。这通常意味着内核代码中的一个
指针变量
没有被正确初始化,导致在对其进行解引用(访问其指向的
内存
)时发生错误。解决这个问题可能需要检查内核代码中与指针相关的部分,确保正确初始化并避免空指针解引用。
敲击命令详细查看内核崩溃原因:
代码块
Plain Text
crash_arm> dmesg
翻到最后,可以看到: