Hopefully Simple Question on Debugging Kernel Modules

David Christensen davidch at broadcom.com
Fri Feb 20 16:10:09 PST 2009


I'm sure this is a simple question but the answer is alluding my Google
search capabilities.  My driver is being loaded as a kernel module and
is failing with the following error:

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0xfffffffe40abe9dc
fault code              = supervisor write data, page not present
instruction pointer     = 0x8:0xffffffff920b638f
stack pointer           = 0x10:0xffffffff9212bb10
frame pointer           = 0x10:0xffffffff9212bbb0
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 12 (irq268: bce0)
[thread pid 12 tid 100166 ]
Stopped at      bce_intr+0x8df: addl    $0x1,0x2c854(%r12,%rax,4)
db>

I simply need to find the offending source line in my driver.  Not sure 
how I've managed to get the driver running at all without this but it's 
time to do things the right way.  I have KDB/DDB/GDB built into my 
-CURRENT kernel already.  It'd be great to find the source line while in
the kernel debugger but I'm also fine with rebooting the system to 
identify the line number.

Dave




More information about the freebsd-current mailing list