如何使用crash工具分析Linux内核转储崩溃转储文件

Kdump和Crash的配置方法与内核故障原因分析_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Kdump和Crash的配置方法与内核故障原因分析
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩20页未读,继续阅读
你可能喜欢3629人阅读
Linux 开发(7)
1、kdump介绍与设置
Kdump 是一种基于 kexec 的内存转储工具,目前它已经被内核主线接收,成为了内核的一部分,它也由此获得了绝大多数 Linux 发行版的支持。与传统的内存转储机制不同不同,基于 Kdump 的系统工作的时候需要两个内核,一个称为系统内核,即系统正常工作时运行的内核;另外一个称为捕获内核,即正常内核崩溃时,用来进行内存转储的内核。
应用程序-&系统工具-&kdump-&启用kdump
查看/boot/grub/grub.conf文件中kernel一行最后是否有crashkernel=128M@16M,如果没有,添加上去,重启
3)测试kdump是否可用
执行 echo 1 & /proc/sys/kernel/sysrq
& & &echo c & /proc/sysrq-trigger
经过两次自动重启后,查看/var/crash/目录下是否有vmcore文件生成,如果有表示kdump可用
2、生成带调试信息的vmlinux文件
centos:&&& debuginfo.centos.org
2)按顺序安装 kernel-debuginfo-common-2.6.18-194.3.1.el5.i686.rpm和kernel-debuginfo-2.6.18-194.3.1.el5.i686.rpm,
之后会在/usr/lib/debug/lib/modules/2.6.18-194.3.1.el5/下生产vmlinux文件
3、进入vmlinux所在目录,执行crash /var/crash/-21\:05/vmcore vmlinux&
mod -S XXX &--导入XXX目录下所有符号
log & & & & --查看日志文件,找到最后一条,如EIP: [&f8ee53f5&] bshtej_interrupt+0x103f/0x11cb [tej21] SS:ESP f38
l* bshtej_interrupt+0x103f 出现如下内容
0xf8ee53f5 is in bshtej_interrupt (/opt/dahdi-linux-complete-2.2.1+2.2.1/linux/drivers/dahdi/tej21/tej21.c:2910).
2904 & & & & & &int c,
2907 & & & & & &for(c = 0; c & MAX_CARDS; c++)
2908 & & & & & &{
2909 & & & & & & & & & &if (!cards[c])
2910 & & & & & & & & & &for (x=0;x&cards[c]-&x++) {
2911 & & & & & & & & & & & & & &if (cards[c]-&tspans[x]-&sync)
2912 & & & & & & & & & & & & & &{
2913 & & & & & & & & &
到此可确定死机问题出现在2910行。
4、设置过滤等级:
vmcore文件一般会收集内核崩溃时的各种信息,所以生成时间会较长,文件比较大,如果不需要某些信息的话,可对kdump.conf文件进行配置
vim& /etc/kdump.conf
将core_collector makedumpfile -c 这行打开,并加上-d 31,参数说明如下:
-c:&Compress dump data by each page.
-c:&Compress dump data by each page.
-d:&Specify the type of unnecessary page for analysis.
Dump &| &zero & cache & cache & &user & &free
&&Level | &page & page & &private &data & &page
&&-------+---------------------------------------
&& & &0 &|
&& & &1 &| &X
&& & &2 &| & & & & X
&& & &4 &| & & & & X & & & X
&& & &8 &| & & & & & & & & & & & & &X
&& &16 &| & & & & & & & & & & & & & & & & &X
&& &31 &| &X & & &X & & & X & & & &X & & & X
5、根据Oops值大致判断错误:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:137267次
积分:2079
积分:2079
排名:第12024名
原创:63篇
转载:41篇
评论:14条
(2)(3)(5)(3)(1)(2)(8)(1)(2)(1)(2)(7)(3)(1)(1)(8)(1)(1)(6)(5)(10)(2)(4)(1)(2)(23)(1)如何使用crash工具分析Linux内核崩溃转储文件_百度知道
如何使用crash工具分析Linux内核崩溃转储文件
提问者采纳
这里仅以常用的选项为例说明如下.2使用 crash 的先决条件由于 crash 用于调试内核崩溃的转储文件.6。2,直接进入命令行-i file:&#47:-h:启动之后自动运行 file 中的命令:不显示版本.map 作为默认的映射文件-s。 以 RHEL 为例.ppc64&#47. crash 支持的平台处理器包括;modules&#47. 需要有一个内存崩溃转储文件(例如 vmcore);S2,或者可以通过 &#47.13-0;lib&#47,其中 dump file 是内核转储文件的名称;boot/debug&#47.rpm 启动 crash启动参数说明使用 crash 调试转储文件:&#47、初始调试信息等:设置调试级别-S;dev&#47.el6。4,需要在命令行输入两个参数.ppc64.ppc64.debug 使用 crash -h 或 man crash 可以查看 crash 支持的一系列选项:debug kernel 和 dump file:1:打印帮助信息-d。3, x86_64,不同的发行版名称略有不同.el6. crash 支持 2;dev&#47。如果 crash 命令行没有指定转储文件.27-ppc64;vmlinux-3: rpm -ivh crash-5,安装 crash 及内核调试信息包的步骤如下.0;usr/boot&#47,以 RHEL 和 SLES 为例.5-15(含)以后的 Linux 内核版本;crash 访问的实时系统内存.rpm
rpm -ivh kernel-debuginfo-common-ppc64-2;lib&#47, s390.6.1;debug/lib&#47, arm,则 crash 默认使用实时系统内存,但是对于这两种平台的支持不保证长期维护 );usr&#47,crash 也在不断升级以适应新的内核,这时需要 root 权限:x86;vmlinux
SLES11SP2.32-220.el6.2.6. kernel 映像文件 vmlinux 在编译的时候必须指定了 -g 参数.ppc64:使用 &#47,debug kernel 是由内核调试信息包安装的, ppc64.el6, s390x ( 也有部分 crash 版本支持 Alpha 和 32-bit PowerPC.32-220.rpm
rpm -ivh kernel-debuginfo-2。随着 Linux 内核的更新,即带有调试信息.32-220.8-1,需要安装 crash 工具和内核调试信息包: RHEL6, ia64;mem 或 &#47,因此使用 crash 需要依赖如下条件。crash 安装指南要想使用 crash 调试内核转储文件
其他类似问题
为您推荐:
linux内核的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何使用crash工具分析Linux内核崩溃转储文件_百度知道
如何使用crash工具分析Linux内核崩溃转储文件
提问者采纳
el6;debug&#47。3;vmlinux-3:RHEL6,但是对于这两种平台的支持不保证长期维护 ).0.ppc64/mem 或 &#47,debug kernel 是由内核调试信息包安装的. crash 支持 2:启动之后自动运行 file 中的命令如前文所述.ppc64;2;vmlinuxSLES11SP2, ppc64。内核开发者通过分析该 vmcore 文件就可以诊断出内核崩溃的原因,当 linux 系统内核发生崩溃的时候,需要安装 crash 工具和内核调试信息包.13-0,这时需要 root 权限. 需要有一个内存崩溃转储文件(例如 vmcore).2crashkernel-debuginfo-commonkernel-debuginfoSLES11SP2crashkernel-default-debuginfokernel-ppc64-debuginfo以 RHEL 为例,即带有调试信息.6。4. crash 支持的平台处理器包括.el6.ppc64,则 crash 默认使用实时系统内存.6,不同的发行版名称略有不同:使用 &#47,可以通过 kdump 等方式收集内核崩溃之前的内存,需要在命令行输入两个参数,或者可以通过 &#47, ia64,生成一个转储文件 vmcore.debug使用 crash -h 或 man crash 可以查看 crash 支持的一系列选项;debug&#47.32-220;System。随着 Linux 内核的更新,这里仅以常用的选项为例说明如下.ppc64;crash 访问的实时系统内存,对于定位问题有着十分重要的作用.rpm启动 crash启动参数说明使用 crash 调试转储文件:&#47.8-1.el6:x86, arm:rpm -ivh crash-5,掌握 crash 的使用技巧。那么 crash 就是一个被广泛使用的内核崩溃转储文件分析工具;modules&#47, s390x ( 也有部分 crash 版本支持 Alpha 和 32-bit PowerPC,crash 也在不断升级以适应新的内核;lib&#47.2.el6.32-220,直接进入命令行-lib&#47.5-15(含)以后的 Linux 内核版本,其中 dump file 是内核转储文件的名称:/boot&#47。crash 安装指南要想使用 crash 调试内核转储文件;dev&#47.rpmrpm -ivh kernel-debuginfo-2,以 RHEL 和 SLES 为例:设置调试级别-S;lib&#47,这里仅列出 RHEL 和 SLES 发行版对应的安装包名称如下. kernel 映像文件 vmlinux 在编译的时候必须指定了 -g 参数、初始调试信息等. crash 工具和内核调试包系统版本crash 工具名称内核调试信息包RHEL6;boot&#47。使用 crash 的先决条件由于 crash 用于调试内核崩溃的转储文件.1。不同的发行版安装包名称略有差异,安装 crash 及内核调试信息包的步骤如下:不显示版本.32-220, x86_64.2:1;usr&#47.27-ppc64.map 作为默认的映射文件-s;usr&#47:打印帮助信息-d:debug kernel 和 dump file,因此使用 crash 需要依赖如下条件;dev&#47, s390:-h.6。2.rpmrpm -ivh kernel-debuginfo-common-ppc64-2:表 1。如果 crash 命令行没有指定转储文件,从而进行操作系统的代码改进
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 内核转储 的文章

 

随机推荐