This is an old revision of the document!
Overview
An example of debugging a kernel panic by disassembling an ARM Linux kernel.
The kernel panic
[ 128.459816] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 128.468018] Unable to handle kernel NULL pointer dereference at virtual address 00000002 [ 128.468026] pgd = d8f38000 [ 128.468035] [00000002] *pgd=1a660831, *pte=00000000, *ppte=00000000 [ 128.468041] Internal error: Oops: 817 [#1] PREEMPT SMP ARM [ 128.468046] Modules linked in: [ 128.468062] task: d8f29300 ti: d8f70000 task.ti: d8f70000 [ 128.468074] PC is at futex_wait_setup+0x90/0x14c [ 128.468080] LR is at get_parent_ip+0x10/0x2c [ 128.468086] pc : [<c00704d8>] lr : [<c0040f30>] psr: 600d0013 [ 128.468086] sp : d8f71df8 ip : f66b1657 fp : 00000000 [ 128.468090] r10: 00000002 r9 : 00000000 r8 : d8f71e88 [ 128.468094] r7 : d8f70000 r6 : b56b1654 r5 : 00000002 r4 : d8f71ea4 [ 128.468099] r3 : d96c4240 r2 : 000002ce r1 : b56b1654 r0 : d8f71e04 [ 128.468104] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 128.468109] Control: 10c5387d Table: 18f3806a DAC: 00000015