|
华恒公司的2410开发板,配套kernel版本编号是Linux Kernel v2.4.18-rmk7-pxa1.
应用程序是一个基于MiniGUI 1.3的Ogg Vorbis播放器.
执行连续播放多个Ogg Vorbis文件,十数分钟后,出错停止,进程退出,终端提示:
kernel BUG at page_alloc.c:213!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0ab4000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: ffffffff
CPU: 0
pc : [<c0021b14>] lr : [<c002959c>] Not tainted
sp : c32dfdfc ip : c32dfdb4 fp : c32dfe0c
r10: 00000afe r9 : 00000000 r8 : 00000001
r7 : 00000000 r6 : c01e6634 r5 : c01e661c r4 : 00000000
r3 : 00000000 r2 : 00000001 r1 : 00000001 r0 : 00000001
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000317F Table: 30AB4000 DAC: 00000015
Process angelage (pid: 79, stackpage=c32df000)
Stack: (0xc32dfdec to 0xc32e0000)
fde0: c002959c c0021b14 60000013 ffffffff c025cf80
fe00: c32dfe3c c32dfe10 c0042ba8 c0021ae0 20000013 00000101 c01e6838 c09e6470
fe20: 00000000 000001d2 c01e6834 c01e661c c32dfe6c c32dfe40 c0042f10 c0042964
fe40: c36014c0 00000000 c36014c0 c09e6470 00000047 c0356804 00000001 c36014c0
fe60: c32dfe7c c32dfe70 c0042c14 c0042ecc c32dfea4 c32dfe80 c003abfc c0042c04
fe80: 0000000c c36014c0 0000003b 00000556 00000020 0000001f c32dfed0 c32dfea8
fea0: c003b408 c003ab78 c0356774 c025d880 c36014c0 00000000 00000000 00000023
fec0: c09e6470 c32dff14 c32dfed4 c003b6a0 c003b2dc 00001000 00000001 c09e63c0
fee0: c003bba8 c32dff20 c36014e0 c09e63c0 c36014e0 00000000 c36014c0 c36014e0
ff00: c32de000 401e926c c32dff50 c32dff18 c003bca0 c003b4b4 c6b8281c c32dff78
ff20: 00001000 00001000 4001c000 00000000 c09e63c0 c36014e0 00002000 c36014c0
ff40: 4001b000 c32dff78 c32dff54 c0098f2c c003bc24 c3601440 00002000 c36014c0
ff60: ffffffea 00000000 4001b000 c32dffa4 c32dff7c c004983c c0098e80 c0026100
ff80: c01e4040 00002000 4001b000 00000009 00000003 c001c9a4 00000000 c32dffa8
ffa0: c001c820 c0049770 00002000 c0025dc8 00000009 4001b000 00002000 00000000
ffc0: 00002000 4001b000 00000009 020f2ca8 4001d000 00000001 401e926c bf1ff848
ffe0: 4012bed4 bf1ff828 4011ba68 4019ff24 60000010 00000009 00300425 000440a1
Backtrace:
Function entered at [<c0021ad0>] from [<c0042ba8>]
r4 = C025CF80
Function entered at [<c0042954>] from [<c0042f10>]
Function entered at [<c0042ebc>] from [<c0042c14>]
Function entered at [<c0042bf4>] from [<c003abfc>]
Function entered at [<c003ab68>] from [<c003b408>]
Function entered at [<c003b2cc>] from [<c003b6a0>]
Function entered at [<c003b4a4>] from [<c003bca0>]
Function entered at [<c003bc14>] from [<c0098f2c>]
r8 = 4001B000 r7 = C36014C0 r6 = 00002000 r5 = C36014E0
r4 = C09E63C0
Function entered at [<c0098e70>] from [<c004983c>]
r8 = 4001B000 r7 = 00000000 r6 = FFFFFFEA r5 = C36014C0
r4 = 00002000
Function entered at [<c0049760>] from [<c001c820>]
r8 = C001C9A4 r7 = 00000003 r6 = 00000009 r5 = 4001B000
r4 = 00002000
Code: eb001df9 e59f0014 eb001df7 e3a03000 (e5833000)
Aborted
程序出错,输出提示信息,退回到终端命令行,再运行程序或者BusyBox命令同样会出错.
"Process angelage (pid: 79, stackpage=c32df000)"中的angelage是应用程序可执行文件的名称.
程序中Vrobis的解码和播放在MiniGUI之外的一个线程中完成.
多次测试,都出现上述错误,发作时间却不都相同.
堆栈信息中可以回溯到的最早的函数调用是
"Function entered at [<c0049760>] from [<c001c820>]"?
根据System.map文件,地址<c001c820>对应的标号是ret_fast_syscall
<c0049760>对应的标号是sys_read
ret_fast_syscall是汇编代码中的标号?同进程调度有关?
请教各位大侠:
1.上述错误的具体含义是什么?释放NULL指针指向的空间?
2."Internal error: Oops: ffffffff"具体含义是啥?
3.导致上述错误的原因可能有哪些?
俺是新手,请各位不吝赐教,Thx.
BOW! |
|