程序出现BUG了,如何区分是上层应用还是底层驱动的问题?
在做开发时,出现开机死机的bug,打印信息如下:
Unable to handle kernel paging request at virtual address c81c2010
pgd = c5164000
[c81c2010] *pgd=8052e011, *pte=00000000, *ppte=00000000
Internal error: Oops: 7 [#1]
Modules linked in: dsplinkk cmemk
CPU: 0
PC is at SYNC_WaitSEM+0x234/0x32c [dsplinkk]
LR is at flush_signals+0x64/0x90
pc : [<bf00d804>] lr : [<c0056230>] Tainted: GF
sp : c5693e38 ip : c5693e20 fp : c5693e84
r10: ffffffff r9 : c0043578 r8 : c81c2008
r7 : c5693e44 r6 : c81c2000 r5 : c5692000 r4 : 00000002
r3 : 00000001 r2 : 00000000 r1 : c06543b4 r0 : c06543b4
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 5317F
Table: 85164000 DAC: 00000015
Process encode (pid: 561, stack limit = 0xc5692258)
Stack: (0xc5693e38 to 0xc5694000)
3e20: c8207880 00008000
3e40: c5693e5c 00000001 c56e5040 c0043578 c81c2008 c81c2008 bf015784 00000000
3e60: 00008000 c5693ef4 c81be000 ffffffff 80008051 bf022490 c5693eb4 c5693e88
3e80: bf011a54 bf00d5e0 bf011b7c 00006f0b 4c0b4aec 00006f0b c0f9dc60 0000000f
3ea0: c5692000 00000000 c5693ec4 c5693eb8 bf008a7c bf0119d4 c5693f24 c5693ec8
3ec0: bf008400 bf008a7c 0000081f c002d1e0 c502af98 ffffffff c035cc80 0000081f
3ee0: c5693fb0 4ce62000 003d0f00 4002a85c c5693fac 00000000 00008000 000c4440
3f00: 00010003 ffffffff 00000000 00008000 c0f9dc60 4c0b4aec c5693f44 c5693f28
3f20: c00a4f30 bf00809c 00000003 c0f9dc60 0000000f 4c0b4aec c5693f74 c5693f48
3f40: c00a5210 c00a4ec4 00000000 002c0000 c5692000 00000000 4c0b4aec 00006f0b
3f60: 0000000f c5692000 c5693fa4 c5693f78 c00a52ec c00a4f5c 00000001 00000001
3f80: 0000000d ffffffff 0009a120 4c0b4b8c 00000036 c0032f88 00000000 c5693fa8
3fa0: c0032f58 c00a5248 ffffffff 0009a120 0000000f 00006f0b 4c0b4aec 0000000f
3fc0: ffffffff 0009a120 4c0b4b8c 00000036 00010003 00002cdc 0009ac5c 4c0b4ad4
3fe0: 0009cdfc 4c0b4a00 0006a5a8 4027c27c 60000010 0000000f fff00002 0007000e
Backtrace:
[<bf00d5d0>] (SYNC_WaitSEM+0x0/0x32c [dsplinkk]) from [<bf011a54>] (LDRV_MSGQ_ge t+0x90/0xd0 [dsplinkk])
[<bf0119c4>] (LDRV_MSGQ_get+0x0/0xd0 [dsplinkk]) from [<bf008a7c>] (PMGR_MSGQ_ge t+0x10/0x14 [dsplinkk])
[<bf008a6c>] (PMGR_MSGQ_get+0x0/0x14 [dsplinkk]) from [<bf008400>] (DRV_Ioctl+0x 374/0x9a0 [dsplinkk])
[<bf00808c>] (DRV_Ioctl+0x0/0x9a0 [dsplinkk]) from [<c00a4f30>] (do_ioctl+0x7c/0 x98)
r5 = 4C0B4AEC r4 = C0F9DC60
[<c00a4eb4>] (do_ioctl+0x0/0x98) from [<c00a5210>] (vfs_ioctl+0x2c4/0x2ec)
r6 = 4C0B4AEC r5 = 0000000F r4 = C0F9DC60
[<c00a4f4c>] (vfs_ioctl+0x0/0x2ec) from [<c00a52ec>] (sys_ioctl+0xb4/0xe8)
r9 = C5692000 r8 = 0000000F r6 = 00006F0B r5 = 4C0B4AEC
r4 = 00000000
[<c00a5238>] (sys_ioctl+0x0/0xe8) from [<c0032f58>] (__sys_trace_return+0x0/0x28 )
r8 = C0032F88 r7 = 00000036 r6 = 4C0B4B8C r5 = 0009A120
r4 = FFFFFFFF
Code: e5834000 e5953004 e2833001 e5853004 (e5963010)
<6>note: encode[561] exited with preempt_count 1
prev->state: 2 != TASK_RUNNING??
encode/561[CPU#0]: BUG in __schedule at kernel/sched.c:3826
|