kernel panic问题分析(一)
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问题分析(一)相关推荐
- linux oops产生原理,kernel panic , Oops 等cpu异常的分析与定位
一.kernel panic 二.mips异常机制 三.linuxkernel 对mips异常的处理 四.kernel panic 实例分析 Kernel panic 内核代码,相比用户层代码更难以 ...
- kernel panic分析
Linux kernel panic是很难定位和排查的重大故障,一旦系统发生了kernel panic,相关的日志信息非常少,而一种常见的排查方法-重现法–又很难实现,因此遇到kernel panic ...
- [crash分析]“Kernel panic - not syncing: Aiee, killing interrupt handler”“BUG: scheduling while atomic“
crash的直接提示信息"Kernel panic - not syncing: Aiee, killing interrupt handler!",不太常见.crash栈也没太多 ...
- linux内核 异常 log,Linux Kernel WARN()/BUG(), Oops/Panic, Tainted分析
稳定性范畴, 参考5.x kernel. kernel Oops Oops指的就是内核的不正确行为,比如对驱动来说:static int i82092aa_pci_probe(struct pci_d ...
- 内核移植出现:Kernel panic - not syncing: No init found.
今天在升级SDK的时候,升级到kernel时遇到如题所述的问题,花了天时间调通,在这里记录一下. 报错提示:(当时没有记录,错误的提示大概如下) Kernel panic - not syncing: ...
- Linux kernel Panic后自动重启机器的设置
Linux kernel Panic后自动重启机器的设置 方法1:内核配置命令行加入这句,崩溃后3秒重启: panic=3 make menuconfig 设置kernel系统参数: 方法2: vi ...
- Linux kernel panic 问题解决方案
===================================================== arm linux系统启动相关文章列表: arm linux系统启动流程 http://bl ...
- Kernel Panic 介绍
https://wiki.deepin.org/?title=Linux_kernel_panic 简介 内核错误就像名字所暗示的那样,它表示Linux kernel走到了一个不知道该怎么走下一步的状 ...
- Linux kernel panic问题解决方法
kernel panic错误表现 kernel panic 主要有以下几个出错提示: Kernel panic-not syncing fatal exception in interrupt ker ...
最新文章
- 【Angular4】英雄指南demo
- Apache RocketMQ部署文档
- Unity C# 设计模式(一)单例模式
- java获取机器号_(转)JAVA获得机器码的实现
- jquery template.js前端模板引擎
- 需要安全认证的远程EJB调用示例(Jboss EAP 6.2环境)
- Python数据结构与算法笔记(六):数据结构——列表和栈
- golang数据库的操作,更新删除增加单行查找与多行查找
- 数据库开发工具——安装教程
- opensuse13.1 安装 SqliteMan
- 电脑局域网所有IP及对应MAC地址查询
- bitblt和getpixel哪个更效率
- 磨金石教育摄影技能干货分享|人物系列摄影作品欣赏
- 复现ReDet RTX 3090 pytorch1.8.1
- 计算机配置xp系统,教你WinXP系统如何设置一台电脑两个显示器
- webpack中文官网
- tc_net_secu 使用手册
- 怎么申请域名 域名的申请方式与流程 如何怎么买域名
- #Reading Paper# 【序列推荐综述】IJCAI‘19:Sequential Recommender Systems: Challenges, Progress and Prospects
- MTK平台LCD驱动框架详解(一)