diff options
author | Andreas Kling <awesomekling@gmail.com> | 2018-11-08 11:37:01 +0100 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2018-11-08 11:40:58 +0100 |
commit | fdbd9f1e272b97d7d28f9f610be8fbf0bdbd98d9 (patch) | |
tree | 5caafbf80252f8116a6921d7498d5d56a21481fb /Kernel/i386.cpp | |
parent | 41a751c90c9d39db764308aeba476db593b9b6e1 (diff) | |
download | serenity-fdbd9f1e272b97d7d28f9f610be8fbf0bdbd98d9.zip |
Start working on memory-mapped files.
First of all, change sys$mmap to take a struct SC_mmap_params since our
sycsall calling convention can't handle more than 3 arguments.
This exposed a bug in Syscall::invoke() needing to use clobber lists.
It was a bit confusing to debug. :^)
Diffstat (limited to 'Kernel/i386.cpp')
-rw-r--r-- | Kernel/i386.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Kernel/i386.cpp b/Kernel/i386.cpp index f7b21b504f..f6e46f7345 100644 --- a/Kernel/i386.cpp +++ b/Kernel/i386.cpp @@ -232,6 +232,11 @@ void exception_14_handler(RegisterDumpWithExceptionCode& regs) if (response == PageFaultResponse::ShouldCrash) { kprintf("Crashing after unresolved page fault\n"); + kprintf("exception code: %w\n", regs.exception_code); + kprintf("pc=%w:%x ds=%w es=%w fs=%w gs=%w\n", regs.cs, regs.eip, regs.ds, regs.es, regs.fs, regs.gs); + kprintf("stk=%w:%x\n", ss, esp); + kprintf("eax=%x ebx=%x ecx=%x edx=%x\n", regs.eax, regs.ebx, regs.ecx, regs.edx); + kprintf("ebp=%x esp=%x esi=%x edi=%x\n", regs.ebp, esp, regs.esi, regs.edi); current->crash(); } else if (response == PageFaultResponse::Continue) { #ifdef PAGE_FAULT_DEBUG |