7.6. 分析内核转储
要确定系统崩溃的原因,您可以使用 crash 实用程序,它提供了一个与 GNU Debugger(GDB)类似的交互式提示符。这个工具允许您交互式地分析正在运行的 Linux 系统,以及由 netdump、diskdump
、xendump
或
kdump
创建的核心转储。
7.6.1. 安装 crash 工具 复制链接链接已复制到粘贴板!
要安装 崩溃分析工具,以 root
用户身份从 shell 提示符执行以下命令:
yum install crash
yum install crash
除了 崩溃 外,还需要安装与正在运行的内核对应的 kernel-debuginfo 软件包,该软件包提供了转储分析所需的数据。要安装 kernel-debuginfo,我们以 root
用户身份使用 debuginfo-install
命令:
debuginfo-install kernel
debuginfo-install kernel
有关如何使用 Yum 软件包管理器在 Red Hat Enterprise Linux 中安装新软件包的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南。
7.6.2. 运行 crash 工具 复制链接链接已复制到粘贴板!
要启动该实用程序,在 shell 提示符后以以下格式输入命令:
crash /usr/lib/debug/lib/modules/<kernel>/vmlinux \ /var/crash/<timestamp>/vmcore
crash /usr/lib/debug/lib/modules/<kernel>/vmlinux/usr/lib/debug/lib/modules/<kernel>/vmlinux/usr/lib/debug/lib/modules/<kernel>/vmlinux \ /var/crash/<timestamp>/vmcore/var/crash/<timestamp>/vmcore/var/crash/<timestamp>/vmcore
使用 kdump
捕获的相同 <kernel> 版本。要查找您当前运行的内核,请使用 uname -r
命令。
例 7.2. 运行 crash 工具
7.6.3. 显示消息缓冲 复制链接链接已复制到粘贴板!
若要显示内核消息缓冲区,可在交互式提示符处键入 log
命令。
例 7.3. 显示内核消息缓冲
键入 help log 以
了解有关命令用法的更多信息。
内核消息缓冲区包含有关系统崩溃的最重要信息,因此始终先转储到 vmcore-dmesg.txt
文件。当尝试使完整的 vmcore
文件失败时(例如,目标位置上缺少空间),这很有用。默认情况下,vmcore-dmesg.txt
位于 /var/crash/
目录中。
7.6.4. 显示后端 复制链接链接已复制到粘贴板!
若要显示内核堆栈跟踪,可在交互式提示符处键入 bt
命令。您可以使用 bt <pid>
来显示单个进程的后端。
例 7.4. 显示内核堆栈追踪
键入 help bt
以了解有关命令用法的更多信息。
7.6.5. 显示进程状态 复制链接链接已复制到粘贴板!
要显示系统中进程的状态,请在交互式提示符处键入 ps
命令。您可以使用 ps <pid>
显示单个进程的状态。
例 7.5. 显示系统中进程的状态
键入 help ps
来了解有关命令用法的更多信息。
7.6.6. 显示虚拟内存信息 复制链接链接已复制到粘贴板!
要显示基本虚拟内存信息,请在交互式提示符下键入 vm
命令。您可以使用 vm <pid>
显示单个进程的信息。
例 7.6. 显示当前上下文的虚拟内存信息
键入 help vm
以了解有关命令使用情况的更多信息。
7.6.7. 显示打开的文件 复制链接链接已复制到粘贴板!
要显示有关打开文件的信息,请在交互式提示符下键入 files
命令。您可以使用 文件 <pid> 来
只显示一个选定进程打开的文件。
例 7.7. 显示有关当前上下文打开文件的信息
键入 help 文件
以了解有关命令用法的更多信息。
7.6.8. 退出实用程序 复制链接链接已复制到粘贴板!
要退出交互式提示符并终止 崩溃,请键入 exit
或 q
。
例 7.8. 退出 crash 工具
crash> exit ~]#
crash> exit
~]#