diff --git a/kernel/Makefile b/kernel/Makefile index 9729d28e..53841a3f 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -36,6 +36,7 @@ kernel/font.o \ kernel/Input.o \ kernel/kernel.o \ kernel/kmalloc.o \ +kernel/Panic.o \ kernel/PIC.o \ kernel/PIT.o \ kernel/RTC.o \ diff --git a/kernel/arch/i386/make.config b/kernel/arch/i386/make.config index c933cf40..dc1fb78a 100644 --- a/kernel/arch/i386/make.config +++ b/kernel/arch/i386/make.config @@ -9,6 +9,5 @@ $(ARCHDIR)/boot.o \ $(ARCHDIR)/CPUID.o \ $(ARCHDIR)/IDT.o \ $(ARCHDIR)/MMU.o \ -$(ARCHDIR)/Panic.o \ $(ARCHDIR)/VESA.o \ \ No newline at end of file diff --git a/kernel/arch/i386/Panic.cpp b/kernel/kernel/Panic.cpp similarity index 78% rename from kernel/arch/i386/Panic.cpp rename to kernel/kernel/Panic.cpp index 95968f31..3be0afed 100644 --- a/kernel/arch/i386/Panic.cpp +++ b/kernel/kernel/Panic.cpp @@ -8,11 +8,10 @@ namespace Kernel struct stackframe { stackframe* ebp; - uint32_t eip; + uint64_t eip; }; - stackframe* frame; - asm volatile("movl %%ebp, %0" : "=r"(frame)); + stackframe* frame = (stackframe*)__builtin_frame_address(0); BAN::Formatter::print(Serial::serial_putc, "\e[36mStack trace:\r\n"); while (frame) {