DragonFly BSD
DragonFly kernel List (threaded) for 2004-06
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: trap 12 during boot


From: Jean-Marc Zucconi <jmz@xxxxxxxxxxxxxx>
Date: Sun, 13 Jun 2004 22:06:26 +0200 (CEST)

>>>>> 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@xxxxxxxxxxx [KeyID: 400B38E9]



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]