我是靠谱客的博主 背后毛衣,最近开发中收集的这篇文章主要介绍linux内核oops错误码说明,Linux Kernel Oops异常分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

0.linux内核异常常用分析方法

异常地址是否在0附近,确认是否是空指针解引用问题

异常地址是否在iomem映射区,确认是否是设备访问总线异常问题,如PCI异常导致的地址访问异常

异常地址是否在stack附近,如果相邻,要考虑是否被踩

比较delay reset/nmi watchdog等多种机制打印的栈信息,看看pc是否在动,确定是否是死锁

用SysRq判断是真死还是假死

通过反汇编获得发生异常的C代码段和函数,查找开源社区是否已有补丁修复

下面分别通过PowerPC和Mips64的2个异常例子详细讲解分析过程。

1.PowerPC小系统内核异常分析

1.1  异常打印

Unable to handle kernel paging request for data at address 0x36fef31e

Faulting instruction address: 0xc0088b8c

Oops: Kernel access of bad area, sig: 11 [#1]

PREEMPT SMP NR_CPUS=2

Modules linked in: ossmod tipc ohci_hcd ehci_hcd cmm uart1655x bcm334 bootflash mtdchar bsp_flash_init boardctrl 85xx_debug util

NIP: C0088B8C LR: C0088CF8 CTR: 00000000

REGS: ce283e20 TRAP: 0300 Not tainted (2.6.21.7-EMBSYS-CGEL-3.04.10.P6.F5)

MSR: 00021000 CR: 22004

最后

以上就是背后毛衣为你收集整理的linux内核oops错误码说明,Linux Kernel Oops异常分析的全部内容,希望文章能够帮你解决linux内核oops错误码说明,Linux Kernel Oops异常分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部