原理
Linux内核发送崩溃时,kdump会生成一个内核转储文件vmcore。可以通过分析vmcore分析出内核崩溃的原因。
crash是一个被广泛应用的内核奔溃转储文件分析工具。使用crash调试内核转储文件,需要安装crash工具和内核调试工具kernel-debuginfo。
安装需要的软件
1、查看系统内核
[root@client_1cdr 127.0.0.1-2022-12-31-16:04:17]# uname -r
3.10.0-957.el7.x86_64
2、安装kdump,crash
yum install crash kexec-tools -y
3、安装kernel-debuginfo
下载链接: debuginfo.centos.org/7/x86_64/
rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-957.el7.x86_64.rpm
rpm -ivh kernel-debuginfo-3.10.0-957.el7.x86_64.rpm
crash报告分析
1、使用crash命令加载vmcore文件
crash /usr/lib/debug/lib/modules/3.10.0-957.el7.x86_64/vmlinux vmcore
2、使用bt 命令用于查看系统崩溃前的堆栈信息
3.log命令查看详细信息,log执行后搜索Call Trace关键字,查看driver的哪个函数引起的crash