LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1098|回复: 1

请教内核调试问题

[复制链接]
发表于 2006-7-23 16:25:41 | 显示全部楼层 |阅读模式
内核panic。
klogd提示出问题部分地址的EPC,但没有给出出问题的函数
dump内核,得到汇编代码,查找出问题部分的EPC地址,发现是在task_action部分。
于是感觉问题在内核调度task_action,但是应该是由于用户空间程序编写不当导致的吧,因为修改过某用户程序后bug会消失及变化。
现在想加printk调试都不知道怎么样,在哪里入手好。因为是嵌入式系统的内核,也无法用其它工具来调试。
查看<LDD>第三版内核调试部分,同样给出了这样的例子,但并没有提示如何定位的问题,而只是说明了怎么样来定位有提示出错函数的方法。
对于没有给出出错的函数的内核当掉,到底应该怎么样定位好呢?
请各位指教一下。


$0 : 00000000 1000fc01 9421f080 00000000 9421f0e0 95fd6000 1000fc01 ffff00ff
$8 : 95fd7fe0 0000fc00 9421f040 94fa1ee8 00000000 fffffff8 94fa1d83 95c63c00
$16: c00f6168 9421f0e0 c00f6168 942278a0 00000001 9421f080 9421f0c0 402100ce
$24: 00000000 2ab82240                   95fd6000 95fd7f40 02000000 9403c92c
Hi : 00000000
Lo : 00000c00
epc  : 9403cf10    Not tainted
Status: 1000fc03
Cause : 10800008
Process ksoftirqd_CPU0 (pid: 3, stackpage=95fd6000)
Stack: 94e10800 00000000 95fd6000 95fd7f70 00000001 9421f0e0 ffffffef ffffffef
       1000fc01 942278a0 9403c92c 10800400 00000001 00000000 942278a0 00000001
       942278a0 00000001 00010f00 00000000 238118da 40609240 04253190 9403d494
       04253190 941b6ed0 00000000 00000000 9403d3e4 00000000 94029f1c 95fd7fe0
       02000000 94211a34 00989680 00000000 94029f0c 00000000 1000fc03 10800020
       80fddec8 ...
Call Trace: [<9403c92c>] [<9403d494>] [<941b6ed0>] [<9403d3e4>] [<94029f1c>] [<9
4029f0c>]

Code: 3c139422  267378a0  02408021 <8e110008> 16200015  8e520000  c2030004  0074
1025  00541026
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
 楼主| 发表于 2006-8-2 16:06:06 | 显示全部楼层
通过查阅资料了解到no_content这是在中断部分出现的问题,检查软中断代码后发现原来修改的软中断处理函数错误,从而确定了出错点。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表