linux系统内核发生崩溃的时侯,可以通过kdump等方法搜集内核崩溃之前的显存,生成一个存贮文件vmcore。内核开发者通过剖析

本文首先介绍了crash的基本概念和安装方式,其次详尽介绍了怎样使用crash工具剖析内核崩溃存贮文件,包括各类常用调试命令的使用方式,最后以几个实际工作中遇见的真实案例向读者展示了crash的强悍功能。在这篇文章中,既有详尽的工具使用方式,又有丰富的实际案例剖析,相信您读过之后定会获益颇丰。

哪些是crash

如前文所述,当linux系统内核发生崩溃的时侯,可以通过kdump等方法搜集内核崩溃之前的显存linux 内核文件全分析,生成一个存贮文件vmcore。内核开发者通过剖析该vmcore文件就可以确诊出内核崩溃的缘由,进而进行操作系统的代码改进。这么crash就是一个被广泛使用的内核崩溃存贮文件剖析工具,把握crash的使用方法,对于定位问题有着非常重要的作用。

使用crash的先决条件

因为crash用于调试内核崩溃的存贮文件,因而使用crash须要依赖如下条件:

1.kernel映像文件vmlinux在编译的时侯必须指定了-g参数,,即带有调试信息。

linux-1213内核网络栈实现源代码分析_linux 内核文件全分析_linux内核源代码分析 pdf

2.须要有一个显存崩溃存贮文件(比如vmcore),或则可以通过/dev/mem或/dev/crash访问的实时系统显存。假如crash命令行没有指定存贮文件,则crash默认使用实时系统显存,这时须要root权限。

3.crash支持的平台处理器包括:x86,x86_64,ia64,ppc64,arm,s390,s390x(也有部份crash版本支持Alpha和32-bitPowerPC,然而对于这两种平台的支持不保证常年维护)。

4.crash支持2.2.5-15(含)之后的Linux内核版本。随着Linux内核的更新,crash也在不断升级以适应新的内核。

crash安装手册

要想使用crash调试内核存贮文件,须要安装crash工具和内核调试信息包。不同的发行版安装包名称略有差别linux学习,这儿仅列举RHEL和SLES发行版对应的安装包名称如下:

表1.crash工具和内核调试包

系统版本crash工具名称内核调试信息包

RHEL6.2crashkernel-debuginfo-common

kernel-debuginfo

SLES11SP2crashkernel-default-debuginfo

kernel-ppc64-debuginfo

以RHEL为例,安装crash及内核调试信息包的步骤如下:

rpm-ivhcrash-5.1.8-1.el6.ppc64.rpm

rpm-ivhkernel-debuginfo-common-ppc64-2.6.32-220.el6.ppc64.rpm

rpm-ivhkernel-debuginfo-2.6.32-220.el6.ppc64.rpm

linux-1213内核网络栈实现源代码分析_linux 内核文件全分析_linux内核源代码分析 pdf

启动crash

启动参数说明

使用crash调试存贮文件,须要在命令行输入两个参数:debugkernel和dumpfile,其中dumpfile是内核存贮文件的名称免费linux主机,debugkernel是由内核调试信息包安装的,不同的发行版名称略有不同,以RHEL和SLES为例:

RHEL6.2:/usr/lib/debug/lib/modules/2.6.32-220.el6.ppc64/vmlinux

SLES11SP2:/usr/lib/debug/boot/vmlinux-3.0.13-0.27-ppc64.debug

linux-1213内核网络栈实现源代码分析_linux内核源代码分析 pdf_linux 内核文件全分析

使用crash-h或mancrash可以查看crash支持的一系列选项linux 内核文件全分析,这儿仅以常用的选项为例说明如下:

-h:复印帮助信息

-d:设置调试级别

-S:使用/boot/System.map作为默认的映射文件

-s:不显示版本、初始调试信息等,直接步入命令行

-ifile:启动然后手动运行file中的命令,再接受用户输入

本文原创地址:https://www.linuxprobe.com/rhsycgjfxnhb.html编辑:刘遄,审核员:暂无