转自:https://blog.csdn.net/guowenyan001/article/details/19807555

一、简介

linux内核发送崩溃时,kdump会生成一个内核转储文件vmcore。 可以通过分析vmcore分析出内核崩溃的原因。

crash是一个被广泛应用的内核奔溃转储文件分析工具。

使用crash调试内核转储文件,需要安装crash工具和内核调试工具kernel-debuginfo。

二、安装kudmp、crash、kernel-debuginfo

安装包的版本,要与linux内核一致,查看linux内核版本:

uname -a

2.1 安装、配置、启动kdump

安装kdump:

yum search kexec-tools
            yum install kexec-tools.x86_64

配置kdump:

vim  /boot/grub/menu.lst:  设置crashkernel=auto

vim /etc/kdump.conf:          path /var/crash    (core文件产生的目录)

启动kdump:

service kdump start

2.2 安装crash

文件名:crash-6.1.0-5.el6.x86_64.rpm

安装:yum search crash

yum install  crash.x86_64

2.3 安装kernel-debuginfo

文件名:kernel-debuginfo-common-x86_64-2.6.32-220.el6.x86_64.rpm

kernel-debuginfo-2.6.32-220.el6.x86_64.rpm

下载地址:http://debuginfo.centos.org/6/x86_64/

安装:rpm -ivh kernel-debuginfo-common-x86_64-2.6.32-220.el6.x86_64.rpm

rpm -ivh kernel-debuginfo-2.6.32-220.el6.x86_64.rpm

三、分析vmcore

3.1 模拟机内内核奔溃

echo  c  >  /proc/sysrq-trigger

执行此命令内核崩溃,会在/var/crash目录下生成vmcore文件。(vim /etc/kdump.conf; path /var/crash)

3.2 分析vmcore

进入目录/var/crash/127.0.0.1-2014-02-24-09:30:19,可以看到vmcore文件。

1.  执行/usr/bin/crash  /usr/lib/debug/lib/modules/2.6.32-220.el6.x86_64/vmlinux  vmcore

2. 具体分析过程见:http://blog.csdn.net/guowenyan001/article/details/12975221

参考资料:

深入探索kdump、crash:http://www.ibm.com/developerworks/cn/linux/l-cn-kdump4/index.html?ca=drs

crash调试vmcore:http://blog.csdn.net/taget/article/details/7814740
---------------------
作者:kanguolaikanguolaik
来源:CSDN
原文:https://blog.csdn.net/guowenyan001/article/details/19807555
版权声明:本文为博主原创文章,转载请附上博文链接!

Linux内核调试:kdump、vmcore、crash、kernel-debuginfo【转】的更多相关文章

  1. Linux Kernel - Debug Guide (Linux内核调试指南 )

    http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级 ...

  2. Linux内核调试方法总结【转】

    转自:http://my.oschina.net/fgq611/blog/113249 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核 ...

  3. 【转】Linux内核调试方法总结

    目录[-] 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG_ON() 2  dump_sta ...

  4. Linux内核调试方法总结

    Linux内核调试方法总结 一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG_ON() 2   ...

  5. Linux内核调试方法【转】

    转自:http://www.cnblogs.com/shineshqw/articles/2359114.html kdb:只能在汇编代码级进行调试: 优点是不需要两台机器进行调试. gdb:在调试模 ...

  6. Linux内核调试的方式以及工具集锦【转】

    转自:https://blog.csdn.net/gatieme/article/details/68948080 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...

  7. Linux内核调试的方式以及工具集锦

    原文:https://blog.csdn.net/gatieme/article/details/68948080 CSDN GitHubLinux内核调试的方式以及工具集锦 LDD-LinuxDev ...

  8. linux内核调试指南

    linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...

  9. Linux内核调试 - 一般人儿我都不告诉他(一)【转】

    转自:http://www.cnblogs.com/armlinux/archive/2011/04/14/2396821.html 悄悄地进入Linux内核调试(一) 本文基址:http://blo ...

  10. Linux内核调试技术——jprobe使用与实现

    前一篇博文介绍了kprobes的原理与kprobe的使用与实现方式,本文介绍kprobes中的另外一种探測技术jprobe.它基于kprobe实现,不能在函数的任何位置插入探測点,仅仅能在函数的入口处 ...

随机推荐

  1. spring中IOC和AOP原理

    IoC(Inversion of Control): (1)IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控.控制权由应用代码中转 ...

  2. 2017-12-14python全栈9期第一天第一节之太白自我介绍和内容大纲

    1.计算机基础 2.python历史 3.python的环境 4.Python的发展 5.python的种类 6.变量 7.常量 8.注释 9.用户交互 10.基础类型初始 11.if 12.whil ...

  3. 比Kafka Mangaer更优秀的开源监控工具-Kafka Eagle

    比Kafka Mangaer更优秀的开源监控工具-Kafka Eagle 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在Kafka的监控系统中有很多优秀的开源监控系统.比如Kaf ...

  4. hdfs.DataStreamer: Exception in createBlockOutputStream

    在上传文件至 HDFS 提示如下信息 [root@h136 jdk1.8.0_202]# hadoop fs -put javafx-src.zip / 19/04/11 23:19:36 INFO ...

  5. JAVA核心技术I---JAVA基础知识(抽象类和接口)

    一:抽象类 (一)定义 类:属性(0或多个)+方法(0或多个)一个完整(健康)的类:所有的方法都有实现(方法体)类可以没有方法,但是有方法就肯定要有实现,这才是一个完整的类一个完整的类才可以被实例化, ...

  6. Hadoop记录-HDFS balancer配置

    HDFS balancer配置(可通过CM配置)dfs.datanode.balance.max.concurrent.moves 并行移动的block数量,默认5 dfs.datanode.bala ...

  7. Canvas判断内容为空

    如题,项目需要做一个canvas的绘图工具,绘制图纸传递给后台.因此需要做一个非空验证,记录解决方法祝大家早日脱坑. js验证代码: //验证canvas画布是否为空函数function isCanv ...

  8. 【leetcode-125】 验证回文串

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan, a c ...

  9. HDU 1263(水果统计 **)

    题意是对水果的产地和种类进行统计再按格式输出. 代码如下: #include <bits/stdc++.h> using namespace std; struct node { ],pl ...

  10. Silverlight用户无法注册之MySql.Data.dll不一致

    本篇博文记录本人解决一个"用户无法注册"的问题的过程 1 问题描述: 用户可以删除:但不能注册,也不能修改权限: 图 1用户注册失败 图 2修改用户权限出错 2 解决过程 1)粗暴 ...