ubuntu22.04/18.04 针对内核PANIC的kdump实践

Linux系统在内核发生PANIC后,将会失去交互能力,也就无法通过常用的手段进行DEBUG,最后时刻的调用堆栈也不会被记录到系统日志中,给DEBUG带来极大的困难。通常可以通过PSTORE或者KDUMP方法来获取最后时刻的PANIC信息,这里使践一把kdump方法。

系统环境:

ubuntu22.04/18.04 针对内核PANIC的kdump实践_第1张图片
ubuntu22.04/18.04 针对内核PANIC的kdump实践_第2张图片

编译DEBUG版的内核

参照博客编译DEBUG 版的内核,用于对kcore dump文件进行调试时获取正确的符号信息,我们实验操作也是基于同版内核之上。

https://blog.csdn.net/tugouxp/article/details/117616804?spm=1001.2014.3001.5502

请注意编译时要打开CONFIG_DEBUG_INFO宏,编译完成后,安装并重启系统。

安装KDUMP工具环境

sudo apt install kexec-tools
sudo apt install kexec-tools crash
sudo apt install linux-crashdump
sudo apt install linux-tools-$(uname -r)
sudo apt install linux-tools-common

linux-crashdump工具包含crash,kdump-tools,grub等相关依赖,安装过程中,会修改/boot/grub/grub.cfg文件,在命令行中预留KDUMP转储内核内存空间。

crashkernel=512M-:192M

crash工具是redhat开发的分析工具,功能类似于gdb, 也可以在如下地址下载:https://github.com/crash-utility/crash/releases.

重启后,crashkernel分配区域通过以下方式确认:

sudo dmesg|grep crashkernel

或者

cat /proc/cmdline

你可能感兴趣的:(DEBUG,linux,ubuntu,macos)