Hello again! Another kernel crash. The console was running at that time, so perhaps I missed some messages. The kernel debugger (Ctrl-Alt-d), however, offered the following to me: #v+ Stopped at 0x17673a: ret db> trace 0x17673a(0) Kernel page fault at address 0x30, eip = 0x16ef1c Kernel page fault trap, eip 0x16ef1c Caught Page fault (14), code = 0, pc = 16ef1c #v-
#v+ $ addr2line -fe gnumach 0x17673a 0x16ef1c spl0 i386/i386/spl.S:92 db_nextframe i386/i386/db_trace.c:273 #v- #v+ $ cat -n i386/i386/spl.S | grep -C 10 ^\ \ \ \ 92 82 1: 83 cmpl $(SPL0),EXT(curr_ipl) /* are we at spl0? */ 84 je 1f /* yes, all done */ 85 movl $(SPL0),EXT(curr_ipl) /* set ipl */ 86 movl EXT(pic_mask)+SPL0*4,%eax 87 /* get PIC mask */ 88 SETMASK() /* program PICs with new mask */ 89 1: 90 sti /* enable interrupts */ 91 popl %eax /* return previous mask */ 92 ret 93 94 Entry(splsoftclock) 95 ENTRY(spl1) 96 SETIPL(SPL1) 97 98 ENTRY(spl2) 99 SETIPL(SPL2) 100 101 ENTRY(spl3) 102 SETIPL(SPL3) #v- #v+ $ cat -n i386/i386/db_trace.c | grep -C 10 ^\ \ \ 273 263 task_t task = (thread != THREAD_NULL)? thread->task: TASK_NULL; 264 265 switch(frame_type) { 266 case TRAP: 267 /* 268 * We know that trap() has 1 argument and we know that 269 * it is an (struct i386_saved_state *). 270 */ 271 saved_regs = (struct i386_saved_state *) 272 db_get_task_value((int)&((*fp)->f_arg0),4,FALSE,task); 273 db_printf(">>>>> %s (%d) at ", 274 trap_name(saved_regs->trapno), saved_regs->trapno); 275 db_task_printsym(saved_regs->eip, DB_STGY_PROC, task); 276 db_printf(" <<<<<\n"); 277 *fp = (struct i386_frame *)saved_regs->ebp; 278 *ip = (db_addr_t)saved_regs->eip; 279 break; 280 case INTERRUPT: 281 if (*lfp == 0) { 282 db_printf(">>>>> interrupt <<<<<\n"); 283 goto miss_frame; #v- Regards, Thomas _______________________________________________ Bug-hurd mailing list Bug-hurd@gnu.org http://lists.gnu.org/mailman/listinfo/bug-hurd