内核和模块oops信息调试
模块加载后出错,打印信息:
Unable to handle kernel NULL pointer dereference at virtual address 00000014 //指针引起的问题
pgd = c3ae8000
[00000014] *pgd=33adb831, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1] ARM
Modules linked in: usb_mouse1(O+)
CPU: 0 Tainted: G O (3.4.2 #8)
PC is at usb_mouse_probe+0x124/0x610 [usb_mouse1] //PC的值,这里表示PC指向的是usb_mouse_probe函数偏移的0x124处,一共0x610
LR is at usb_mouse_probe+0x530/0x610 [usb_mouse1]
pc : [<bf000428>] lr : [<bf000834>] psr: 60000013 //各个寄存器的值
sp : c3a83e40 ip : c3a127a0 fp : 00000001
r10: 00000034 r9 : 00000001 r8 : 00000158
r7 : c3a85e00 r6 : c3a97c00 r5 : 00000001 r4 : c3a12832
r3 : 00000000 r2 : 00000001 r1 : c068b588 r0 : c3a13000
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: c000717f Table: 33ae8000 DAC: 00000015
Process insmod (pid: 973, stack limit = 0xc3a82270) //发生错误的进程
Stack: (0xc3a83e40 to 0xc3a84000) //下面是栈里的值
3e40: c3b08b88 c01e2978 00000000 c3a96148 c3a83e70 c3b08b88 00000000 000000d0
3e60: c3a85e20 c3a85e00 c3a85e20 bf001050 c3a85e20 c3a97c00 bf001020 bf000984
3e80: 00000000 c0379af4 c3a85e20 c3a85e20 bf001050 bf001050 c06ac854 c068ab80
3ea0: 00000000 c02e0420 c3a85e20 c3a85e54 bf001050 c02e05b0 c3a10260 c02e063c
3ec0: 00000000 c3a83ed0 bf001050 c02deec0 c385c618 c3a10410 bf001020 bf001020
3ee0: bf001050 bf001050 c067de44 c02df600 bf000fec 00000000 00000000 bf001020
3f00: bf001050 bf000fec bf001050 c067de44 bf003000 c02e0bfc bf001020 bf0010a0
3f20: bf000fec bf001050 c067de44 c0379888 00019c44 000e2e38 bf0010a0 c3a82000
3f40: c0115668 bf003014 00019c44 c0108750 00000000 00000000 00000000 c0192ad4
3f60: 00019c44 00019c44 000e2e38 bf0010a0 00000000 c0115668 c3a82000 00000000
3f80: befc0e84 c015b6a8 c381dc88 c381dc80 c3842da0 00000001 00000000 befc0e88
3fa0: 00000080 c01154c0 00000001 00000000 000ef040