当linux内核发生崩溃的时侯,可以通过kdump等方法搜集内核崩溃之前的显存,生成一个存贮文件vmcore。内核开发者通过剖析
本文首先介绍了crash的基本概念和安装方式,其次详尽介绍了怎样使用crash工具剖析内核崩溃存贮文件,包括各类常用调试的使用方式,最后以几个实际工作中遇见的真实案例向读者展示了crash的强悍功能。在这篇文章中,既有详尽的工具使用方式,又有丰富的实际案例剖析,相信您读过之后定会获益颇丰。
哪些是crash
如前文所述,当linux系统内核发生崩溃的时侯,可以通过kdump等方法搜集内核崩溃之前的显存linux 内核文件全分析,生成一个存贮文件vmcore。内核开发者通过剖析该vmcore文件就可以确诊出内核崩溃的缘由,进而进行操作系统的代码改进。这么crash就是一个被广泛使用的内核崩溃存贮文件剖析工具,把握crash的使用方法,对于定位问题有着非常重要的作用。
使用crash的先决条件
因为crash用于调试内核崩溃的存贮文件,因而使用crash须要依赖如下条件:
1.kernel映像文件vmlinux在编译的时侯必须指定了-g参数,,即带有调试信息。
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
启动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
使用crash-h或mancrash可以查看crash支持的一系列选项linux 内核文件全分析,这儿仅以常用的选项为例说明如下:
-h:复印帮助信息
-d:设置调试级别
-S:使用/boot/System.map作为默认的映射文件
-s:不显示版本、初始调试信息等,直接步入命令行
-ifile:启动然后手动运行file中的命令,再接受用户输入
本文原创地址://q13zd.cn/rhsycgjfxnhb.html编辑:刘遄,审核员:暂无