免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2114 | 回复: 6
打印 上一主题 下一主题

我用的2.4.19的内核,频繁关闭打开进程会出现内核段错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-25 08:46 |只看该作者 |倒序浏览
一直用2.4.19这个平台做嵌入式开发,最近发现个问题。
同时运行两个进程a和b。
a启动后什么都不做,只是while(1) {sleep(10);}
b启动后每隔5秒就找到a的pid,然后把a杀死,之后再启动a。
这样大概启动200次左右就会发生内核段错误。
Unable to handle kernel NULL pointer dereference at virtual address 00000000
mm = c00113a0 pgd = c2624000
*pgd = 22629001, *pmd = 22629001, *pte = 00000000, *ppte = 00000000
Internal error: Oops: 0
CPU: 0
pc : [<00000000>]    lr : [<c001de90>]    Not tainted
sp : c262be40  ip : c262be40  fp : c262be5c
r10: c00113a0  r9 : ffffffff  r8 : c262be9c
r7 : c262be9c  r6 : 00000001  r5 : 24000000  r4 : c03fdd60
r3 : 00000000  r2 : c262be9c  r1 : 00000000  r0 : 00000001
Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  Segment user
Control: C000317F  Table: 22624000  DAC: 00000015
Process plc (pid: 92, stack limit = 0xc262a374)
Stack: (0xc262be40 to 0xc262c000)
be40: c01fc65c c01ead94 00000001 c01fc618 c262be80 c262be60 c001df80 c001de50
be60: c0204500 c262be9c 00000001 c0037ffc 20000013 c262be98 c262be84 c001e0e8
be80: c001decc c262bed0 fefff000 c262bf04 c262be9c c001d1e0 c001e0c4 22629400
bea0: 22629001 000b0000 000002c0 000b0000 c00113a0 c2624000 c00113a0 000b0000
bec0: ffffffff c00113a0 c262bf04 c262bf08 c262bee4 c0037e2c c0037ffc 20000013
bee0: ffffffff 000b0000 c00113a0 c2696900 ffffffff c262a000 c262bf30 c262bf08
bf00: c0037e2c c0037f30 c26296bc c262bf0c c2696900 c262a000 ffffffff 000b0000
bf20: ffffffff c262bf58 c262bf34 c00230bc c0037de8 c00113bc c262a000 c01b49f4
bf40: c00113a0 000b0000 c262bfb0 c262bf8c c262bf5c c0023240 c0023060 c01fc65c
bf60: 00000000 00000007 000b0000 c01b49f4 c262bfb0 00000001 000092e0 400fa26c
bf80: c262bfac c262bf90 c00236f8 c00231dc ffffffff c262bfec 00008a08 c000317f
bfa0: 00000000 c262bfb0 c001d47c c00236d4 000aff88 00000000 0000035c 000b0000
bfc0: 00000648 bffffed4 00008a08 4001fe94 00000001 000092e0 400fa26c bffffc88
bfe0: 00000000 bffffc74 0001322c 4008c26c 20000010 ffffffff 8a000016 e51b202c
Backtrace:
Function entered at [<c001de40>] from [<c001df80>]
  r7 = C01FC618  r6 = 00000001  r5 = C01EAD94  r4 = C01FC65C
Function entered at [<c001debc>] from [<c001e0e8>]
  r8 = 20000013  r7 = C0037FFC  r6 = 00000001  r5 = C262BE9C
  r4 = C0204500
Function entered at [<c001e0b4>] from [<c001d1e0>]
  r5 = FEFFF000  r4 = C262BED0
Function entered at [<c0037f20>] from [<c0037e2c>]
  r8 = C262A000  r7 = FFFFFFFF  r6 = C2696900  r5 = C00113A0
  r4 = 000B0000
Function entered at [<c0037dd8>] from [<c00230bc>]
  r8 = FFFFFFFF  r7 = 000B0000  r6 = FFFFFFFF  r5 = C262A000
  r4 = C2696900
Function entered at [<c0023050>] from [<c0023240>]
Function entered at [<c00231cc>] from [<c00236f8>]
Function entered at [<c00236c4>] from [<c001d47c>]
  r7 = C000317F  r6 = 00008A08  r5 = C262BFEC  r4 = FFFFFFFF
Code: bad PC value.
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
l

论坛徽章:
0
2 [报告]
发表于 2009-08-26 01:10 |只看该作者
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
看样子可能是与中断有关系

论坛徽章:
0
3 [报告]
发表于 2009-08-26 01:16 |只看该作者
还有竟然是Code: bad PC value.?

在google上搜了搜,没什么有用的信息。

论坛徽章:
0
4 [报告]
发表于 2009-08-26 10:07 |只看该作者
来不及sync导致的? 我猜一下啊,你试着把 sleep 10 调大一些,再试试

论坛徽章:
0
5 [报告]
发表于 2009-08-26 10:08 |只看该作者
错了,是吧b程序的间隔时间调整大一些

论坛徽章:
0
6 [报告]
发表于 2009-09-09 15:56 |只看该作者
在b中kill掉a进程中。是否可以看到a进程是否真正的已经退出。

最好waitpid看看,是否真的退出。

同时,我估计是a进程没有退出。导致内存不够

论坛徽章:
0
7 [报告]
发表于 2009-09-09 16:23 |只看该作者
在b中kill掉a进程中。是否可以看到a进程是否真正的已经退出。

最好waitpid看看,是否真的退出。

同时,我估计是a进程没有退出。导致内存不够
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP