获得vmcore

Kernel dump 是什么

Kdump – 捕捉kernel dump的工具

Kdump的工作原理

Kdump的配置

Dump分析的工具crash(1)

准备环境

根据vmcore文件获取内核版本及系统信息

kernel debuginfo 内核符号文件

Kernel source code

RHEL与SLES的不同

时区设置

运行crash utility:基于vmcore或基于live system

Dump分析的思路:从哪里开始

判断panic类型

系统信息 sys

Message buffer – log

Kernel panic的若干种类型

Hard lockup

Kernel panic – not syncing: Watchdog detected hard LOCKUP on cpu 0

soft lockup

kernel panic – not syncing: softlockup: hung tasks

hung task panic

kernel panic – not syncing: hung_task: blocked tasks

oom

Kernel panic – not syncing: Out of memory: system-wide panic_on_oom is enabled

空指针/非法指针

BUG: unable to handle kernel NULL pointer dereference at 0000000000000650
BUG: unable to handle kernel paging request at ffff88081fc03cd0

MCE(Machine Check Exception)

Kernel panic – not syncing: Fatal Machine Check

NMI

Kernel panic – not syncing: NMI IOCK error: Not continuing

HP Watchdog timer module [hpwdt]

Kernel panic – not syncing: An NMI occurred, please see the Integrated Management Log for details

SysRq

PANIC: “SysRq: Trigger a crashdump”

BUG_ON() 断语

kernel BUG at fs/inode.c:322!

理解函数调用栈(backtrace)

代码的执行轨迹

CPU寄存器状态pt_regs
栈帧里的数据
内核栈溢出
汇编指令
调用约定(call convention)
call/ret/leave指令
参数传递约定
通用寄存器,caller-saved vs. callee-saved
对照源代码
changelog
内核模块
Taint flags
crash utility如何加载内核模块的调试信息
Hang分析

思路

  1. 是没有可运行的进程?
  2. 还是有很多进程想运行但抢不到CPU?
  3. 什么是uninterruptible sleep
  4. 抢占式内核也有不能被抢占的情况
  5. 自旋锁spinlock
  6. crash工具的基本命令

进程 ps/task/runq/bt

内存kmem/vm/swap/ipcs

IO : dev/mount/files/fuser

网络 net

Crash utility扩展工具

PyKdump

kernel panic必备知识的更多相关文章

  1. Linux Kernel PANIC(三)--Soft Panic/Oops调试及实例分析【转】

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

  2. CentOS系统Kernel panic - not syncing: Attempted to kill init

    结果启动虚拟机出现如下问题: Kernel panic - not syncing: Attempted to kill init     解决方法: 系统启动的时候,按下'e'键进入grub编辑界面 ...

  3. kernel/panic.c

    /* *  linux/kernel/panic.c * *  Copyright (C) 1991, 1992  Linus Torvalds */ /* * This function is us ...

  4. Java面试必备知识

    JAVA面试必备知识 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可 ...

  5. Kernel Panic常见原因以及解决方法

    Technorati 标签: Kernel Panic 出现原因 1. Linux在中断处理程序中,它不处于任何一个进程上下文,如果使用可能睡眠的函数,则系统调度会被破坏,导致kernel panic ...

  6. linux启动报错:kernel panic - not attempted to kill init

    系统类型:CentOS 6.4(x64) 启动提示:Kernel panic - not syncing: Attempted to kill init 解决办法: 系统启动的时候,按下‘e’键进入g ...

  7. Apache Tomcat8必备知识

    Apache Tomcat8必备知识 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 一.Apache Tomcat 8介绍 Apache Tomcat ...

  8. LFS:kernel panic VFS: Unable to mount root fs

    说明: 使用Vm虚拟机构建自己的LFS系统时,系统引导不成功,提示 kernel panic VFS: Unable to mount root fs 参考链接:http://www.52os.net ...

  9. <转载>Div+Css布局教程(-)CSS必备知识

    目录: 1.Div+Css布局教程(-)CSS必备知识 注:本教程要求对html和css有基础了解. 一.CSS布局属性 Width:设置对象的宽度(width:45px). Height:设置对象的 ...

随机推荐

  1. mybatis sql语句#{}和${}区别联系

    1.说白了就是,#{}用于引用字符变量,如varchar,string.因为sql语句执行过程中要给string varchar加‘’来执行. 2.${}用来引用int型等不需要添加单引号的值 3.具 ...

  2. CF #EDU R1 E

    最二的一次了~我开始以为是带有贪心的DP,谁知道想错了.后来才想明白,暴力二分+记忆化DP #include <iostream> #include <cstdio> #inc ...

  3. CF #321 (Div. 2) E

    用线段树维护哈希,类似于进位制的一个哈希 a[i]*p^i+a[i-1]*p^i-1... 然后,线段树存在某区间的哈希的值,对于更新,则只需提前计算出整段的哈希值即可. 判断是否相等,由于相隔为d, ...

  4. mvn 仓库

    http://mvnrepository.com/artifact/org.postgresql/postgresql/9.3-1103-jdbc41 ------------------------ ...

  5. [csdn markdown]使用摘记一源码高亮及图片上传和链接

    本文主要内容是体验csdn markdown的代码块高亮显示和图片链接及上传. 图片上传 上边这是标题行.仅仅须要使用一个#就能够表示.几个表示是几级标题 图片上传 本地图片上传控件 本地图片上传方式 ...

  6. 一句话实现Mysql查询结果带行号

    SELECT @rowno:=@rowno + 1 AS rowno,a.* FROM tableName a,(SELECT @rowno:=0) b

  7. android recovery 系统代码分析 -- 选择进入【转】

    本文转载自:http://blog.csdn.net/andyhuabing/article/details/9226569 最近做Recovery的规范及操作指导文档,花了一些时间将流程搞清. An ...

  8. Android+Jquery Mobile学习系列(9)-总结和代码分享

    经过一个多月的边学习边练手,学会了Android基于Web开发的毛皮,其实开发过程中用Android原生API不是很多,更多的是HTML/Javascript/Css. 个人觉得基于WebView的J ...

  9. mtools 是由MongoDB 官方工程师实现的一套工具集,可以很快速的日志查询分析、统计功能,此外还支持本地集群部署管理.

    mtools 是由MongoDB 官方工程师实现的一套工具集,可以很快速的日志查询分析.统计功能,此外还支持本地集群部署管理 https://www.cnblogs.com/littleatp/p/9 ...

  10. 【POJ 1011】 Sticks

    [题目链接] http://poj.org/problem?id=1011 [算法] 深搜剪枝 首先我们枚举木棍的长度i,那么就有s/i根木棍,其中s为木棍长度的总和,朴素的做法就是对每种长度进行搜索 ...