kernel panic 分析解决方法

kernel panic 表示 Linux kernel 走到了一个不知道该怎么走下一步的状况,一
旦到这个情况,kernel就尽可能把它此时能获取的全部信息都打印出来,至于能打印出多少信息。

下面讲解几种用于查找出错函数定位的方法:

1. 查看panic现象

首先看一下出错的kernel panic 现象,下面是一个kernel panic的出错log:

2. 分析定位

如上崩溃信息,可知发生崩溃的函数为 rb_init_debugfs,

崩溃的地址为 0x804386f8

1)在linux下,到工程的如下目录下:kernel/linux,找到文件vmlinux,执行命令

gdb vmlinux

在gdb命令下执行如下命令即可查找到出错函数所在的文件与行数

(gdb) b *0x804386f8

2)

如果不确定崩溃的地址是否是0x804386f8,可以在文件System.map中

查找函数rb_init_debugfs获取该函数的地址,然后加上偏移地址(本例中偏移地址为0x14 rb_init_debugfs+0x14/0x70)即可。

3)直接函数名加偏移量也可以

(gdb) b *rb_init_debugfs+0x14

上面是出错模块是编译进内核的,对于编译进内核的模块可以通过gdb vmlinux来确定出错函数所在的文件与行数。

那如果出错模块是动态加载进内核的该怎么办呢?

这就需要使用objdump进行反汇编操作了,使用如下命令,就会将C语言与汇编语言同时显示(需要加-g命令)

#objdump -S  **.o -g

如果使用上面命令,还是只显示汇编,而没有c语言的话,不用担心,在你编译驱动模块的Makefile中,编译成.o文件时,增加-g选项,对于新生成的.o文件再使用上面的命令就 可以看到汇编与c语言共存了。然后根据kernel panic提示中显示的函数名加上偏移量就能找到出错行了。

kernel panic问题分析(一)相关推荐

  1. linux oops产生原理,kernel panic , Oops 等cpu异常的分析与定位

    一.kernel panic 二.mips异常机制 三.linuxkernel 对mips异常的处理 四.kernel panic 实例分析 Kernel  panic 内核代码,相比用户层代码更难以 ...

  2. kernel panic分析

    Linux kernel panic是很难定位和排查的重大故障,一旦系统发生了kernel panic,相关的日志信息非常少,而一种常见的排查方法-重现法–又很难实现,因此遇到kernel panic ...

  3. [crash分析]“Kernel panic - not syncing: Aiee, killing interrupt handler”“BUG: scheduling while atomic“

    crash的直接提示信息"Kernel panic - not syncing: Aiee, killing interrupt handler!",不太常见.crash栈也没太多 ...

  4. linux内核 异常 log,Linux Kernel WARN()/BUG(), Oops/Panic, Tainted分析

    稳定性范畴, 参考5.x kernel. kernel Oops Oops指的就是内核的不正确行为,比如对驱动来说:static int i82092aa_pci_probe(struct pci_d ...

  5. 内核移植出现:Kernel panic - not syncing: No init found.

    今天在升级SDK的时候,升级到kernel时遇到如题所述的问题,花了天时间调通,在这里记录一下. 报错提示:(当时没有记录,错误的提示大概如下) Kernel panic - not syncing: ...

  6. Linux kernel Panic后自动重启机器的设置

    Linux kernel Panic后自动重启机器的设置 方法1:内核配置命令行加入这句,崩溃后3秒重启: panic=3 make menuconfig 设置kernel系统参数: 方法2: vi ...

  7. Linux kernel panic 问题解决方案

    ===================================================== arm linux系统启动相关文章列表: arm linux系统启动流程 http://bl ...

  8. Kernel Panic 介绍

    https://wiki.deepin.org/?title=Linux_kernel_panic 简介 内核错误就像名字所暗示的那样,它表示Linux kernel走到了一个不知道该怎么走下一步的状 ...

  9. Linux kernel panic问题解决方法

    kernel panic错误表现 kernel panic 主要有以下几个出错提示: Kernel panic-not syncing fatal exception in interrupt ker ...

最新文章

  1. 【Angular4】英雄指南demo
  2. Apache RocketMQ部署文档
  3. Unity C# 设计模式(一)单例模式
  4. java获取机器号_(转)JAVA获得机器码的实现
  5. jquery template.js前端模板引擎
  6. 需要安全认证的远程EJB调用示例(Jboss EAP 6.2环境)
  7. Python数据结构与算法笔记(六):数据结构——列表和栈
  8. golang数据库的操作,更新删除增加单行查找与多行查找
  9. 数据库开发工具——安装教程
  10. opensuse13.1 安装 SqliteMan
  11. 电脑局域网所有IP及对应MAC地址查询
  12. bitblt和getpixel哪个更效率
  13. 磨金石教育摄影技能干货分享|人物系列摄影作品欣赏
  14. 复现ReDet RTX 3090 pytorch1.8.1
  15. 计算机配置xp系统,教你WinXP系统如何设置一台电脑两个显示器
  16. webpack中文官网
  17. tc_net_secu 使用手册
  18. 怎么申请域名 域名的申请方式与流程 如何怎么买域名
  19. #Reading Paper# 【序列推荐综述】IJCAI‘19:Sequential Recommender Systems: Challenges, Progress and Prospects
  20. MTK平台LCD驱动框架详解(一)

热门文章

  1. unity3d战棋游戏地图点击的实现
  2. c语言程序代码中的间隔,printf()函数输出后 默认的间隔是多少
  3. 总是被当下的眼界局限的想象力,比如视频网站、比如5G...
  4. Google面试题 图论的问题
  5. CoAP协议学习笔记(一)
  6. 米筐开源量化框架 RQalpha 安装使用
  7. 微信加入群聊的设计点
  8. (web)个人项目(挖宝网)
  9. 微信信息延迟问题如何解决?想不到有这么多原因,这下涨知识了
  10. 网络类型(hcip)