Re: Page Fault Kernel Panic on Leopard
Re: Page Fault Kernel Panic on Leopard
- Subject: Re: Page Fault Kernel Panic on Leopard
- From: "Brian Bechtel" <email@hidden>
- Date: Tue, 11 Dec 2007 06:44:02 -0800
On Dec 11, 2007 5:48 AM, JanakiRam <email@hidden> wrote:
> Hi Brian,
>
> Thanks for the initial response.
>
> > Why not post the rest of the panic log? That's the information that
> > tells you what really happened.
>
> Here is the complete Panic Log. Please help me to analyze this problem.
> panic(cpu 0 caller 0x001A7BED): Kernel trap at 0x346e9f78, type
> 14=page fault, registers:
> CR0: 0x8001003b, CR2: 0x349d9a00, CR3: 0x00ff9000, CR4: 0x00000660
> EAX: 0x349d9a00, EBX: 0x349d9a00, ECX: 0x00508444, EDX: 0xffffffff
> CR2: 0x349d9a00, EBP: 0x344b75b8, ESI: 0x00000000, EDI: 0x3471afa0
> EFL: 0x00010206, EIP: 0x346e9f78, CS: 0x00000008, DS: 0x00000010
> Error code: 0x00000000
CR2 is 0x349d9a00. That's the offending address. Notice that this
address is also found in registers EBX and EAX.
> Backtrace, Format - Frame : Return Address (4 potential args on stack)
> 0x344b73c8 : 0x12b0e1 (0x455670 0x344b73fc 0x133238 0x0)
> 0x344b7418 : 0x1a7bed (0x45ea20 0x346e9f78 0xe 0x45e1d4)
> 0x344b74f8 : 0x19e517 (0x344b7510 0x7fb4bb0 0x344b75b8 0x346e9f78)
> 0x344b7508 : 0x346e9f78 (0xe 0x48 0x10 0x1a0010)
> 0x344b75b8 : 0x346ea13d (0x349d9a00 0x0 0x22db6 0x344b75ec)
> 0x344b75d8 : 0x346eacb2 (0x349d9a00 0x0 0x347096cc 0x34709684)
> 0x344b7628 : 0x346f65ab (0x349e8a58 0x34a35600 0x0 0x1)
> 0x344b76b8 : 0x346f6ca7 (0x18000 0x0 0x3470ca28 0x349e8a18)
> 0x344b7728 : 0x346f412d (0x34a0ec00 0xb 0x3470bf60 0x347083d0)
> 0x344b7758 : 0x346e668e (0x344b7cc8 0x344b7cf8 0x34708298 0x34708284)
> 0x344b77a8 : 0x346e898e (0x344b7cf8 0x344b7cf8 0x0 0x34a35600)
> 0x344b7d18 : 0x1f183b (0x344b7d34 0x0 0x1 0x344b7ddc)
> 0x344b7d68 : 0x1e11b6 (0xaa41c70 0x62853f0 0x344b7f48 0x0)
> 0x344b7df8 : 0x1e1334 (0x453c964 0x344b7e1c 0x0 0x63614265)
> 0x344b7f78 : 0x3da847 (0x5cb0060 0x453c860 0x453c8a4 0x0)
> 0x344b7fc8 : 0x19ea34 (0xb1e39a0 0x0 0x1a10b5 0xb1e39a0)
This is the backtrace. The first value in each line is the stack
frame, the next is the address. The top three addresses are standard
for any panic on Intel, they are the routines panic, which is called
by kernel_trap, which is called by trap_from_kernel. This is a
typical sequence for any page fault. The fourth line from the top is
the interesting line. It's code in your kext. How can I tell? I
look at the "Kernel loadable modules in backtrace" information
(someday that will say "kernel extensions in backtrace")
> Kernel loadable modules in backtrace (with dependencies):
> com.yourcompany.kext.mydriver(1.0.0d1)@0x346e5000->0x34725fff
0x346e9f78 is 0x4f78 from the start of your kext at 0x346e5000. The
offending address in CR2, 0x349d9a00, is 0x2f4a00 from the start of
your kext. I notice that you've passed this address in from other
routines in your kext (the first argument on each of the two previous
backtrace lines is 0x349d9a00).
What else can I tell? Not much. You're running 10.5.1:
> Mac OS version:
> 9B18
on a Mac Book Pro
> System model name: MacBookPro2,2 (Mac-F42187C8)
Your best bet to debug this further is to use two machines. Generate
symbols by setting the DWARF with dSYM option in your Xcode project.
The command
cd build/Development
kextload -z -n -a com.yourcompany.kext.mydriver@0x346e5000 -s . ./mydriver.kext
should generate the appropriate symbol files. On a host (debugging)
machine, download the 10.5.1 Kernel Debug Kit and mount it. Panic the
target
gdb /Volumes/KernelDebugKit/mach_kernel
(gdb) source /Volumes/KernelDebugKit/kgmacros
(gdb) add-kext mydriver.kext
(gdb) kdp-reattach {target IP address} # replace this with an actual IP address
(gdb) paniclog # should be the same as the panic you've reported
(gdb) bt # should show you symbols in your code
(gdb) frame 4 # to get to the offending stack frame
(gdb) list # to see the code
Good luck.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden