kern
diff src/panic.c @ 57:437360696883
I think we're done for now. two processes seem to be scheduled and switched just fine, fork seems to work (NO CoW YET!)
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 16 Aug 2011 03:26:53 +0300 |
parents | 5f6c5751ae05 |
children | 2dda077c1d38 |
line diff
1.1 --- a/src/panic.c Mon Aug 15 06:17:58 2011 +0300 1.2 +++ b/src/panic.c Tue Aug 16 03:26:53 2011 +0300 1.3 @@ -18,12 +18,15 @@ 1.4 { 1.5 va_list ap; 1.6 struct all_registers regs; 1.7 + uint32_t eip; 1.8 1.9 disable_intr(); 1.10 1.11 memset(®s, 0, sizeof regs); 1.12 get_regs(®s); 1.13 1.14 + eip = get_caller_instr_ptr(); 1.15 + 1.16 printf("~~~~~ kernel panic ~~~~~\n"); 1.17 va_start(ap, fmt); 1.18 vprintf(fmt, ap); 1.19 @@ -32,7 +35,7 @@ 1.20 printf("\nRegisters:\n"); 1.21 printf("eax: %x, ebx: %x, ecx: %x, edx: %x\n", regs.eax, regs.ebx, regs.ecx, regs.edx); 1.22 printf("esp: %x, ebp: %x, esi: %x, edi: %x\n", regs.esp, regs.ebp, regs.esi, regs.edi); 1.23 - printf("eflags: %x\n", regs.eflags); 1.24 + printf("eip: %x, eflags: %x\n", eip, regs.eflags); 1.25 printf("cr0: %x, cr1: %x, cr2: %x, cr3: %x\n", regs.cr0, regs.cr1, regs.cr2, regs.cr3); 1.26 printf("cs: %x (%d|%d)\n", regs.cs, regs.cs >> 3, regs.cs & 3); 1.27 printf("ss: %x (%d|%d)\n", regs.ss, regs.ss >> 3, regs.ss & 3);