如何生成vmcore文件
1.打开kdump,
2.echo 1 > /proc/sys/kernel/softlockup_panic,打开/proc/sys/kernel/softlockup_panic。
3.使用echo c > /proc/sysrq-trigger命令可以手动触发crash,触发crash后在/var/crash/下会生成vmcore和vmcore-dmesg.txt
排查vmcore
1.安装vmcore文件对应的crash、kernel-debuginfo版本,否则用crash命令打开报错。
openEuler 22.03 LTS版本的crash等rpm包链接
http://repo.openeuler.org/openEuler-22.03-LTS/everything/x86_64/Packages/
crash-7.3.0-5.oe2203.x86_64.rpm
kernel-devel-5.10.0-60.18.0.50.oe2203.x86_64.rpm
kernel-debuginfo-5.10.0-60.18.0.50.oe2203.x86_64.rpm
使用file vmcore命令可以查看vmcore版本
2.分析vmcore文件
crash /lib/debug/lib/modules/5.10.0-60.18.0.50.oe2203.x86_64/vmlinux vmcore
bt查看core是的堆栈信息
ps pid 查看core的进程信息
ps -p pid 查看进程父子关系
log 查message日志
bt -c 7(cpu号) 查看当前cpu堆栈信息
3.如有需要安装内核文件,安装系统内核对应的kernel.src.rpm包
安装kernel-5.10.0-60.18.0.50.oe2203.src.rpm,/root/rpmbuild/SOURCES/kernel下就是内核源码