制造内核崩溃并使用crash分析内核崩溃产生的vmcore文件
1,安装kernel-debuginfo$(uname -r).rpm和kernel-debuginfo-common-$(uname -r).rpm
2,开启内核崩溃转储
service kdump start
3,开启Magic System Request Key功能
echo 1 >/proc/sys/kernel/sysrq
4,永久开启Magci System Request Key功能
编辑/etc/sysctl.conf文件使kernel.sysrq的值为1,1表示开启 0表示关闭
vim /etc/sysctl.conf 
kernel.sysrq = 1 
5,制造系统崩溃
echo c >/proc/sysrq-trigger
6,等待系统重启后重新登录进入分析崩溃产生的vmcore文件
6.1 使用crash分析vmcore文件
crash   /usr/lib/debug/lib/module/2.6.32-431.el6.x86_64/vmlinux   /var/crash/127.0.0.1-2017-04-05-15\:12\:12/vmcore
 
6.2 查看崩溃前的系统调用
crash> bt
 
从上图我们看到了一个异常[exception RIP: sysrq_handle_crash+22]。下面进一步对这个调用的函数进行分析
6.3 反汇编该段函数
crash> dis -l  sysrq_handle_crash+22
 
如图可以看到出现异常的地方是在/usr/src/debug/kernel-2.6.32-431.el6/linux-2.6.32-431.el6.x86_64/drivers/char/sysrq.c:文件的130行的地方,接下来我们查看一下该文件的130行写着什么
6.4 分析异常函数所对应的文件源码
 
从上图可以看出该函数是强制崩溃,代码也给出了注释:/* force panic */ ,把这段代码copy出来用gdb进行调试会发现报SIGSEGV的错,如下图
 
program received signal SIGSEGV,Segmentation fault. 经过查阅资料得知SIGSEGV信号是无效的的内存访问。就这样问题被一步一步的找出了,此处是人为调用了系统的强制崩溃,只是为了帮助理解分析系统崩溃的思路和过程。

转载于:https://www.cnblogs.com/sonwnja/p/6802844.html

制造内核崩溃并使用crash分析内核崩溃产生的vmcore文件相关推荐

  1. 用crash分析内核死锁的一次实践

    [推荐阅读] 什么是死锁? 内核死锁的debug方法 上文讲了通过lockdep的方式可以debug出死锁的信息,但是如果出问题的系统没有lockdep的配置,或者没有相关的日志该怎么办?这里分享通过 ...

  2. CentOS下crash分析内核kdump文件方法

    1. 安装软件包: # yum install crash # yum install kernel-debuginfo 2. crash使用: # crash /var/crash/127.0.0. ...

  3. SUSE Linux Enterprise Server 安装内核源码及部署crash调试环境,分析内核崩溃文件(基于sles 15.2)

    实验环境: yg-net-static:~ # uname -a Linux yg-net-static 5.3.18-22-default #1 SMP Wed Jun 3 12:16:43 UTC ...

  4. crash分析linux内核崩溃转储文件vmcore

    文章目录 一.调试环境准备 二.使用crash分析vmcore 1.bt命令 2.log命令 3.dis命令 4.mod命令 5.sym命令 6.ps命令 7.files命令 8.vm命令 9.tas ...

  5. c++ dump某个变量_linux内核调试之 crash分析dump文件

    Linux 下也有众多的内存转储分析工具,lcrash.Alicia.Crash.Crash 是由 Dave Anderson 开发和维护的一个内存转储分析工具,目前它的最新版本是 5.0.0. 在没 ...

  6. Linux内核Crash分析

    http://blog.chinaunix.net/uid-20788636-id-4377271.html 在工作中经常会遇到一些内核crash的情况,本文就是根据内核出现crash后的打印信息,对 ...

  7. Linux内核转储---Kdump,Crash使用介绍

    文章目录 Kdump简介 Crash简介 Ubuntu下安装使用方法 Crash相关命令 crash基本用法 crash的基本命令 help:crash所提供的调试命令 log:查看日志信息,类似dm ...

  8. linux内核安全数据,【漏洞分析】Linux内核XFRM权限提升漏洞分析预警(CVE–2017–16939)...

    0x00 背景介绍 2017年11月24日, OSS社区披露了一个由独立安全研究员Mohamed Ghannam发现的一处存在于Linux 内核Netlink socket子系统(XFRM)的漏洞,漏 ...

  9. centos7 kdump、crash调试内核

    文章目录 前言 一.kdump 1.1 kdump定义 1.2 原理架构图 1.3 kdump配置 二.crash 2.1 crash简介 2.2 crash调试 vmcore 总结 参考资料 前言 ...

最新文章

  1. 使用PsPing测试Azure虚拟机的连通性
  2. 自动登录126邮箱的脚本
  3. k8s常用对象图示:Deployment、ReplicaSet、Pod它们的关系
  4. python3将列表当作队列使用
  5. golang 接口类型 interface 简介使用
  6. 210 - Concurrency Simulator
  7. Flume Sink
  8. 面向程序员的GPGPU技术系列(1) 为什么要理解GPU体系结构?
  9. 设计模式-12-命令模式
  10. 2008年十大最值得关注创业公司
  11. 大数据解决方案:解决T+0问题
  12. java获取指定日期当月和下个月的第一天
  13. 扫地机器人的“新故事”,从“第三次革命”开始
  14. 大数据毕业论文:基于大数据的金融量化分析2021-07
  15. 牛客网-《刷C语言百题》第三期
  16. 融合知识图谱的电影推荐_算法与交互界面的实现
  17. 第三回 利器,我的DHCP (转)
  18. JAVA 基础学习第一天
  19. 如何查看IE浏览器保存的密码
  20. c语言编程求连续几日的温差最大 最小值,《热工测量及仪表》习题

热门文章

  1. UA SIE545 优化理论基础1 例题2 Farkas定理与相关结论
  2. Matlab 条形图实例
  3. [Xcode 实际操作]七、文件与数据-(2)创建文件夹
  4. Day10-Python3基础-协程、异步IO、redis缓存、rabbitMQ队列
  5. Python3学习笔记——类
  6. 深入解读Python的unittest并拓展HTMLTestRunner
  7. shell 从1加到100
  8. XDebug分析php代码性能
  9. 需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP...
  10. HTML DOM教程 14-HTML DOM Document 对象