mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-28 15:34:33 +00:00
Check if the page is mapped
This commit is contained in:
parent
0fa30d6d7c
commit
d142128538
@ -25,12 +25,31 @@ namespace CrashHandler
|
||||
|
||||
SafeFunction void TraceFrames(CHArchTrapFrame *Frame, int Count, SymbolResolver::Symbols *SymHandle, bool Kernel)
|
||||
{
|
||||
if (!Memory::Virtual().Check(Frame))
|
||||
{
|
||||
EHPrint("Invalid frame pointer: %p\n", Frame);
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(__amd64__)
|
||||
struct StackFrame *frames = (struct StackFrame *)Frame->rbp; // (struct StackFrame *)__builtin_frame_address(0);
|
||||
if (!Memory::Virtual().Check((void *)Frame->rbp))
|
||||
#elif defined(__i386__)
|
||||
struct StackFrame *frames = (struct StackFrame *)Frame->ebp; // (struct StackFrame *)__builtin_frame_address(0);
|
||||
if (!Memory::Virtual().Check((void *)Frame->ebp))
|
||||
#elif defined(__aarch64__)
|
||||
#endif
|
||||
{
|
||||
EHPrint("Invalid rbp pointer: %p\n", Frame->rbp);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Memory::Virtual().Check(SymHandle))
|
||||
{
|
||||
EHPrint("Invalid symbol handle: %p\n", SymHandle);
|
||||
return;
|
||||
}
|
||||
|
||||
debug("\nStack tracing... %p %d %p %d", Frame, Count, frames, Kernel);
|
||||
EHPrint("\e7981FC\nStack Trace:\n");
|
||||
if (!frames || !frames->rip || !frames->rbp)
|
||||
|
Loading…
x
Reference in New Issue
Block a user