kernel panic 分析解决方法
kernel panic 表示 Linux kernel 走到了一个不知道该怎么走下一步的状况,一
旦到这个情况,kernel就尽可能把它此时能获取的全部信息都打印出来,至于能打印出多少信息。
下面讲解几种用于查找出错函数定位的方法
首先看一下出错的kernel panic 现象,下面是一个kernel panic的出错log:
如上崩溃信息,可知发生崩溃的函数为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 分析解决方法相关推荐
- ORA-04030: 在尝试分配...字节(...)时进程内存不足的原因分析解决方法
ORA-04030: 在尝试分配...字节(...)时进程内存不足的原因分析解决方法 参考文章: (1)ORA-04030: 在尝试分配...字节(...)时进程内存不足的原因分析解决方法 (2)ht ...
- Transaction rolled back because it has been marked as rollback-only分析解决方法
Transaction rolled back because it has been marked as rollback-only分析解决方法 参考文章: (1)Transaction rolle ...
- kernel panic分析
Linux kernel panic是很难定位和排查的重大故障,一旦系统发生了kernel panic,相关的日志信息非常少,而一种常见的排查方法-重现法–又很难实现,因此遇到kernel panic ...
- 【PostgreSQL保存】java.io.IOException: Tried to send an out-of-range integer as a 2-byte value 问题分析+解决方法
1.问题分析 项目里有一个从MySQL导入PostgreSQL然后利用GIS相关插件计算空间数据的定时任务,上线某地市没有任何问题,后期上线到一个大城市,定时任务报错 java.io.IOExcept ...
- 用计算机计数 常常出错怎么办,提示“ultra dma crc错误计数”如何解决?原因分析+解决方法...
电脑经过了一段的使用时间,硬盘难免会出现一些问题,最近有位win7系统用户使用鲁大师对硬盘进行扫描时,系统却提示"ultra dma crc错误计数",用户不知道怎么解决这个问题, ...
- Google Android 7.0 GMS测试常见fail项以及分析解决方法
自从Google 7.0系统发布开始以来,所有使用Googl gms 包服务的第三方厂商出货必须都要过GMS认证,而在2018年预计Android 8.1系统上要求将更为严格..本篇博客列举展讯773 ...
- linux空指针异常能捕获到吗,一次kernel panic分析--空指针in handle_IRQ_event
一.故障现象 内核panic,打印如下: 点击(此处)折叠或打开 Unable to handle kernel NULL pointer dereference at 000000000000003 ...
- kernel busy的解决方法jupyter notebook
问题 内核正忙,连打印都不显示.正确的应该是这样: 解决 网上主流方法是:因为用户名是中文,只需创建一个用户为英文名即可.确实解决了我的问题,但新用户的好多配置和之前的不一样. 有一个更简单的方法,解 ...
- Linux中JAVA服务器CPU占用过高(分析解决方法)
当发现生产环境CPU使用非常高,并且居高不下,导致服务器报警,需要快速定位,分析是什么地方占用CPU过高,推荐步骤如下: 1. 首先服务器查看占用cpu高的进程是哪一个,查出进程号 top 2.查询该 ...
- kernel panic问题分析(一)
kernel panic 分析解决方法 kernel panic 表示 Linux kernel 走到了一个不知道该怎么走下一步的状况,一 旦到这个情况,kernel就尽可能把它此时能获取的全部信息都 ...
最新文章
- java.lang.NoSuchMethodException: getPackageSizeInfo
- Java IO类库之ObjectInputStream和ObjectOutPutStream
- 一位合格的博士生需要有哪些条件和素质?
- 数据库alter用法总结
- 关于《侏罗纪世界》你应该知道的18件事
- VSCode配置PyQt5和designer
- 再见实体店!推荐一个Python神器,能在线帮助小姐姐试衣服!
- 51单片机之串口通信、WiFi模块、蓝牙模块、4G模块
- 从怎样解题到怎样解决问题
- 五款好用的开源CRM系统推荐
- UVA11991 Easy Problem from Rujia Liu? stl
- 学习笔记-应用光学 典型光学系统
- C# .Net 小程序消息推送配置+详细代码
- 通过Windows防火墙禁止某程序(或软件)联网
- 厉害,竟然把VSCode玩成了IDEA的效果,有点哇塞
- 关于HTML中的滚动条
- linux把u盘只读文件,完美解决linux下U盘文件只读的问题
- 在虚拟机中使用摄像头
- C# 飞行棋小游戏 (控制台应用)
- VB程序设计教程(第四版)龚沛曾-实验8-7