linux-糟糕:内核访问错误区域,sig:11-‘swapper’-杀死中断处理程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux-糟糕:内核访问错误区域,sig:11-‘swapper’-杀死中断处理程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2280字,纯文字阅读大概需要4分钟。
内容图文
![linux-糟糕:内核访问错误区域,sig:11-‘swapper’-杀死中断处理程序](/upload/InfoBanner/zyjiaocheng/947/b581b88bf9ac4bd9bcd24200c9426ba5.jpg)
在嵌入式linux环境(在PowerPC上自定义2.4.25)下,几个小时后出现以下内核恐慌:
Oops: kernel access of bad area, sig: 11
NIP: C9471C7C XER: 20000000 LR: C0018C74 SP: C0198E20 REGS: c0198d70 TRAP: 0800 Not tainted
MSR: 00009030 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DEAR: C9876FFF, ESR: 00000000
TASK = c0197020[0] 'swapper' Last syscall: 120
last math 00000000 last altivec 00000000
PLB0: bear= 0x48041040 acr= 0x00000000 besr= 0x00000000
PLB0 to OPB: bear= 0x00cc1000 besr0= 0x00000000 besr1= 0x00000000
GPR00: 00000000 C0198E20 C0197020 00000000 C016E494 000000C2 C01D0000 00000000
GPR08: C98701F0 C9876FFF 00008000 C768AE0F 24004022 1001B120 07FC9500 00000000
GPR16: 00000001 00000001 FFFFFFFF 007FFE00 00001032 00198EE0 00000000 C0004780
GPR24: C01D2F68 C01E0000 C0170000 C0170000 C01B0000 C9473870 00000000 C9473864
Call backtrace:
00000001 C0018C74 C0018A1C C0005E14 C0004780 C0022724 C0005D4C
C0005D60 C0002430 C01AE5BC C0002328
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
<0>Rebooting in 1 seconds...
cat / proc /模块:
CustomModule1 10556 4
CustomModule2 5488 0
CustomModule3 10240 1
fuse 35576 4
usb-storage 28468 0 (unused)
keybdev 3076 0 (unused)
mousedev 6116 0 (unused)
hid 17968 0 (unused)
input 6192 0 [keybdev mouse
ksyms -m:
Address Symbol Defined by
c9471000 (11k) [CustomModule1]
c9471b74 functionA [CustomModule1]
c947358c functionB [CustomModule1]
c9473580 functionC [CustomModule1]
...
我在Google上寻求帮助,但找不到有用的东西. A也想“解码”回溯,但是我不明白该怎么做…地址不对应于System.map中的地址.谁能解释我如何找出错误?
谢谢,
克里斯
解决方法:
NIP是下一条指令指针,或更一般地说是程序计数器(也称为PC),它指示内核在哪里运行.根据ksyms的输出,NIP(0xC9471C7C)的内容看起来在functionA中.您应该能够在functionA模块上使用objdump -S并找出functionA 0x108处的指令.
链接寄存器(LR)保留当前函数的返回地址,并指示functionA的调用方.您可以在System.map文件中查找包含该地址的函数,也可以在vmlinux映像上使用GNU binutils程序addr2line获得相同的信息.从那里,您应该能够更好地了解引起事故的原因.
有关PPC寄存器和汇编的更多信息,请参见here和here.
内容总结
以上是互联网集市为您收集整理的linux-糟糕:内核访问错误区域,sig:11-‘swapper’-杀死中断处理程序全部内容,希望文章能够帮你解决linux-糟糕:内核访问错误区域,sig:11-‘swapper’-杀死中断处理程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。