summaryrefslogtreecommitdiff
path: root/Kernel/i386.cpp
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2018-11-08 11:37:01 +0100
committerAndreas Kling <awesomekling@gmail.com>2018-11-08 11:40:58 +0100
commitfdbd9f1e272b97d7d28f9f610be8fbf0bdbd98d9 (patch)
tree5caafbf80252f8116a6921d7498d5d56a21481fb /Kernel/i386.cpp
parent41a751c90c9d39db764308aeba476db593b9b6e1 (diff)
downloadserenity-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.cpp5
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