kill app on pagefault

This commit is contained in:
2026-02-22 02:25:49 +01:00
parent b9637ce86a
commit 20345264aa
3 changed files with 8 additions and 1 deletions

View File

@@ -46,13 +46,17 @@ static void printContext(const InterruptContext *context) {
kernelpanic("General protection fault!");
}
#include "syscall/skeleton.h"
[[gnu::interrupt]] static void handle_page_fault(InterruptContext *context,
uint64_t error) {
DBG << "Page fault encountered at linear address " << hex
<< Core::CR<2>::read() << endl
<< PageFaultError(error) << endl;
printContext(context);
kernelpanic("Page fault!");
Syscall::Skeleton::exit(Guard::enter().vault());
//kernelpanic("Page fault!");
}
/*! \brief Assembly interrupt handler for the keyboard.

View File

@@ -92,6 +92,8 @@ extern "C" int main() {
g.vault().scheduler.ready(new Thread(false, (void*)appstart, (appsize/4096)+1)); //TODO fix edgecase on size=4096
offset += 1+(appsize/4096);
}
g.vault().scheduler.ready(new Thread(false, (void*)0x4001000, 1));
//for(void* p=Multiboot::getModule(0)->getStartAddress(); p<Multiboot::getModule(0)->getEndAddress(); p=(void*)((uintptr_t)p+4096)){
// DBG << "module at: " << hex << p << endl;
// g.vault().scheduler.ready(new Thread(false, p));