kill app on pagefault
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user