trap 12 during boot
Jean-Marc Zucconi
jmz at dalai-zebu.org
Sun Jun 13 13:07:43 PDT 2004
>>>>> Matthew Dillon writes:
> :The trace does not help here:
> :db> trace
> You can experiment a bit by tracing higher addresses starting at the
> stack pointer. So, for example:
> :fault virtual address = 0x8758b53
> :fault code = supervisor read, page not present
> :instruction pointer = 0x8:0xc02f0a50
> :stack pointer = 0x10:0xc048eac8
> :frame pointer = 0x10:0xc048eacc
> :..
> Try:
> trace 0xc048eacc
db> trace 0xc048eacc
db_get_value(0,c048eb2c,c048eacc,c041b034,c048eb6c) at db_get_value+0x18
_end() at 0xc048ead0
db>
> trace 0xc048ead0
db> trace 0xc048ead0
_end(c048eb2c,c048ead0,c0422164,c048eb6c,c02f118c) at 0xc048ead4
gd_curthread(c048ead4,c0422934,c048eb6c,c02f118c,c04678aa) at 0x4
db>
> trace 0xc048ead4
db> trace 0xc048ead4
gd_curthread(c048ead4,c0422934,c048eb6c,c02f118c,c04678aa) at 0x4
> trace 0xc048ead8
db> trace 0xc048ead8
_end(c0422164,c048eb6c,c02f118c,c0467146,5) at 0xc048eae8
_end() at 0xc048eb2c
db>
> trace 0xc048eadc
db> trace 0xc048eadc
_end(c048eb6c,c02f118c,c0467146,5,0) at 0xc048eadc
_end(c048eb40,c048eadc,c048eb54,c0148d13,1) at 0xc048eadc
> trace 0xc048eae0
db> trace 0xc048eae0
__set_db_cmd_set_sym_db_panic_cmd(c02f118c,c0427549,3) at __set_db_cmd_set_sym_db_panic_cmd
_end(c02f118c,c0467146,3) at _end+0x1de4
_end(c02f118c,c0467146,3) at 0xc0422164
_end(c02f118c,c0467146,3) at 0xc0422164
repeated ~1000 times
> ...
db> trace 0xc048eae8
_end(5,0,c048eaf0,c048eb6c,0) at 0xc048eb6c
_end(46a006a,5004468d,e569cfe8,b04589ff,eb0cc483) at 0xc0467146
db> trace 0xc048eaec
db_stack_trace_cmd(0,c048eaf4,c02f106e,0,c0379fa0) at db_stack_trace_cmd+0x176
_end(6172745f,635f6563,7200646d,756f7365,5f656372) at 0xc048eb6c
db> trace 0xc048ead0
_end(c048eb2c,c048ead0,c0422164,c048eb6c,c02f118c) at 0xc048ead4
gd_curthread(c048ead4,c0422934,c048eb6c,c02f118c,c04678aa) at 0x4
db> trace 0xc048ead4
gd_curthread(c048ead4,c0422934,c048eb6c,c02f118c,c04678aa) at 0x4
db> trace 0xc048ead8
_end(c0422164,c048eb6c,c02f118c,c0467146,5) at 0xc048eae8
_end() at 0xc048eb2c
db> trace 0xc048eadc
_end(c048eb6c,c02f118c,c0467146,5,0) at 0xc048eadc
_end(c048eb40,c048eadc,c048eb54,c0148d13,1) at 0xc048eadc
db> trace 0xc048eaf0
_end(c048eaf8,c048eaf4,0,c0379fa0,c0379fa4) at 0xc048eaf4
db_stack_trace_cmd(c048eaf0,1,3fe,c048eba0,10) at db_stack_trace_cmd+0x2c1
db_command(c0382904,c0382724,c0379fa0,c0379fa4,c032ab3a) at db_command+0x1f3
db_command_loop(0,c048ec60,c02f08ec,c,0) at db_command_loop+0x67
db_trap(c,0,1,c048ecec,c) at db_trap+0xb5
kdb_trap(c,0,c048ecec) at kdb_trap+0x144
trap_fatal(c048ecec,8758b53,c,0,8758b53) at trap_fatal+0x3f0
trap_pfault(c048ecec,0,8758b53) at trap_pfault+0x131
trap(ff800018,c0480010,c01b0010,c0c70b08,0) at trap+0x37c
calltrap() at calltrap+0x18
--- trap 0xc, eip = 0x8758b53, esp = 0xc048ed2c, ebp = 0xc048ed44 ---
gd_idlestack_top(c0c70b08,c03c1840,c84e6d70,0,c03c186c) at 0x8758b53
driver_module_handler(c84e6d70,0,c03c1858,c03c1888,c0379dd4) at driver_module_handler+0x51
module_register_init(c03c186c,48bc00,499000,0,c012f79c) at module_register_init+0x63
mi_startup(48b000,0,0,0,0) at mi_startup+0x90
begin() at begin+0x43
db>
> until you get a good trace (or the machine locks up from the debugger
> trapping into itself too many times).
> If that doesn't work boot a backup kernel and generate a nm output on
> the kernel binary that panics so we can figure out which procedure it
> crashed in.
We have
c02f0a50 is in db_read_bytes:
c02f0a34 T db_read_bytes
c02f0a6c T db_write_bytes
the c048* adresses are after the end of kernel.
Jean-Marc
--
Jean-Marc Zucconi -- PGP Key: finger jmz at xxxxxxxxxxx [KeyID: 400B38E9]
More information about the Kernel
mailing list