mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-30 00:08:03 +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)
|
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__)
|
#if defined(__amd64__)
|
||||||
struct StackFrame *frames = (struct StackFrame *)Frame->rbp; // (struct StackFrame *)__builtin_frame_address(0);
|
struct StackFrame *frames = (struct StackFrame *)Frame->rbp; // (struct StackFrame *)__builtin_frame_address(0);
|
||||||
|
if (!Memory::Virtual().Check((void *)Frame->rbp))
|
||||||
#elif defined(__i386__)
|
#elif defined(__i386__)
|
||||||
struct StackFrame *frames = (struct StackFrame *)Frame->ebp; // (struct StackFrame *)__builtin_frame_address(0);
|
struct StackFrame *frames = (struct StackFrame *)Frame->ebp; // (struct StackFrame *)__builtin_frame_address(0);
|
||||||
|
if (!Memory::Virtual().Check((void *)Frame->ebp))
|
||||||
#elif defined(__aarch64__)
|
#elif defined(__aarch64__)
|
||||||
#endif
|
#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);
|
debug("\nStack tracing... %p %d %p %d", Frame, Count, frames, Kernel);
|
||||||
EHPrint("\e7981FC\nStack Trace:\n");
|
EHPrint("\e7981FC\nStack Trace:\n");
|
||||||
if (!frames || !frames->rip || !frames->rbp)
|
if (!frames || !frames->rip || !frames->rbp)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user