mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-28 07:24:37 +00:00
QoL
This commit is contained in:
parent
bade38e173
commit
16bcb896fa
@ -25,14 +25,13 @@ 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 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);
|
||||||
#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);
|
||||||
#elif defined(__aarch64__)
|
#elif defined(__aarch64__)
|
||||||
#endif
|
#endif
|
||||||
debug("Stack tracing...");
|
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)
|
||||||
{
|
{
|
||||||
|
@ -28,7 +28,7 @@ namespace CrashHandler
|
|||||||
SymbolResolver::Symbols *sh = data.Process->ELFSymbolTable;
|
SymbolResolver::Symbols *sh = data.Process->ELFSymbolTable;
|
||||||
if (!sh)
|
if (!sh)
|
||||||
{
|
{
|
||||||
EHPrint("\eFF0000< No symbol table available. >\n");
|
EHPrint("\n\eFF0000< No symbol table available. >\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TraceFrames(data.Frame, 40, sh, false);
|
TraceFrames(data.Frame, 40, sh, false);
|
||||||
|
@ -15,8 +15,11 @@ static uint64_t sys_exit(SyscallsFrame *Frame, uint64_t code)
|
|||||||
|
|
||||||
static int sys_print(SyscallsFrame *Frame, char Char, int Index)
|
static int sys_print(SyscallsFrame *Frame, char Char, int Index)
|
||||||
{
|
{
|
||||||
debug("%c", Char);
|
int ret = Display->Print(Char, Index, true);
|
||||||
return Display->Print(Char, Index, true);
|
#ifdef DEBUG
|
||||||
|
Display->SetBuffer(Index);
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *NativeSyscallsTable[] = {
|
static void *NativeSyscallsTable[] = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user