kernel panic必备知识
获得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分析
思路
- 是没有可运行的进程?
- 还是有很多进程想运行但抢不到CPU?
- 什么是uninterruptible sleep
- 抢占式内核也有不能被抢占的情况
- 自旋锁spinlock
- crash工具的基本命令
进程 ps/task/runq/bt
内存kmem/vm/swap/ipcs
IO : dev/mount/files/fuser
网络 net
Crash utility扩展工具
PyKdump
kernel panic必备知识的更多相关文章
- Linux Kernel PANIC(三)--Soft Panic/Oops调试及实例分析【转】
转自:https://blog.csdn.net/gatieme/article/details/73715860 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...
- CentOS系统Kernel panic - not syncing: Attempted to kill init
结果启动虚拟机出现如下问题: Kernel panic - not syncing: Attempted to kill init 解决方法: 系统启动的时候,按下'e'键进入grub编辑界面 ...
- kernel/panic.c
/* * linux/kernel/panic.c * * Copyright (C) 1991, 1992 Linus Torvalds */ /* * This function is us ...
- Java面试必备知识
JAVA面试必备知识 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可 ...
- Kernel Panic常见原因以及解决方法
Technorati 标签: Kernel Panic 出现原因 1. Linux在中断处理程序中,它不处于任何一个进程上下文,如果使用可能睡眠的函数,则系统调度会被破坏,导致kernel panic ...
- linux启动报错:kernel panic - not attempted to kill init
系统类型:CentOS 6.4(x64) 启动提示:Kernel panic - not syncing: Attempted to kill init 解决办法: 系统启动的时候,按下‘e’键进入g ...
- Apache Tomcat8必备知识
Apache Tomcat8必备知识 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 一.Apache Tomcat 8介绍 Apache Tomcat ...
- LFS:kernel panic VFS: Unable to mount root fs
说明: 使用Vm虚拟机构建自己的LFS系统时,系统引导不成功,提示 kernel panic VFS: Unable to mount root fs 参考链接:http://www.52os.net ...
- <转载>Div+Css布局教程(-)CSS必备知识
目录: 1.Div+Css布局教程(-)CSS必备知识 注:本教程要求对html和css有基础了解. 一.CSS布局属性 Width:设置对象的宽度(width:45px). Height:设置对象的 ...
随机推荐
- servlet和Spring的DispatcherServlet详解
Servlet是什么 1. Servlet是服务器端运行的一个程序,是一个被编译好的Java类.它不是框架等. 2. Web容器的启动,需要依赖Servlet.当web服务器开始执行时,servlet ...
- Hello, HTML5!
一个典型的HTML5文档的基础结构如下: <!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf ...
- apache storm 的安装
原文: http://storm.praveendeshmane.co.in/storm/storm-0-10-0-installation-on-ubuntu-14-04.jsp --------- ...
- 《解读window核心编程》 之 注冊表
1 注冊表的作用及组织形式 Windows系统使用注冊表来存储系统和应用程序配置数据.非常多系统和应用程序重要的配置的信息都存储在注冊表中. 注冊表是一种以树型结构组织的数据库.树的每个节点称 作键( ...
- hdu 4768 异或运算
http://acm.hdu.edu.cn/showproblem.php?pid=4768 貌似非常多人是用的二分 可是更好的做法貌似还是异或 对于第k个人.假设他接到偶数个传单.那么异或的结果还是 ...
- jQuery - 获取爱好
<!DOCTYPE html > <html> <head> <title> 获取爱好 </title> <meta http-equ ...
- oc39-- 类的内存存储
虚线是isa的指向,实线是继承关系. // // main.m // 类的本质 #import <Foundation/Foundation.h> #import "Person ...
- expectation-maximization algorithm ---- PRML读书笔记
An elegant and powerful method for finding maximum likelihood solutions for models with latent varia ...
- E20170907-ts
flash vt. 使闪光,使闪烁; 拍出,发出(电报等); 〈口〉炫耀; adj. 闪光的,闪耀的,一闪而过的; 浮华的; 庞大的; n. 闪光; 闪光灯下摄 ...
- Eclipse项目包上出现红叉如何去除
Eclipse项目包上出现红叉是因为jdk的版本不一致. 项目名--->Properties----->Java Compiler 图1: