20 lines
546 B
C++
20 lines
546 B
C++
#define MODULE "mem"
|
|
|
|
#include "utils/PageFaultReason.h"
|
|
#include "log/Log.h"
|
|
|
|
#define PROGRAM_STACK_BOTTOM 0x100000
|
|
|
|
void determine_user_page_fault_reason(uintptr_t faulting_address)
|
|
{
|
|
if (faulting_address < 0x1000)
|
|
{
|
|
kinfoln("Address 0x%lx looks like a nullptr dereference", faulting_address);
|
|
return;
|
|
}
|
|
if (faulting_address < PROGRAM_STACK_BOTTOM && (PROGRAM_STACK_BOTTOM - faulting_address) < 0x1000)
|
|
{
|
|
kinfoln("Address 0x%lx looks like a stack overflow", faulting_address);
|
|
return;
|
|
}
|
|
} |