From 124d88f7b71e49019011da539f35eef90a210125 Mon Sep 17 00:00:00 2001 From: xamidev Date: Mon, 15 Jul 2024 18:45:52 +0200 Subject: [PATCH] Add: kernel panic fault handler & dumps --- < | 50 -------------------------------------------- iso/boot/kernel.elf | Bin 19892 -> 19996 bytes isr.c | 3 ++- kernel.elf | Bin 19892 -> 19996 bytes os.iso | Bin 495616 -> 495616 bytes 5 files changed, 2 insertions(+), 51 deletions(-) delete mode 100644 < diff --git a/< b/< deleted file mode 100644 index 37cc297..0000000 --- a/< +++ /dev/null @@ -1,50 +0,0 @@ -#include "stdio.h" -#include "serial.h" -#include "gdt.h" -#include "idt.h" -#include "system.h" - -int kmain(int retvalue) -{ - - gdt_install(); - idt_install(); - isr_install(); - - // serial testing - - init_serial(); - - log("serial connection established", 3); - log("initialized GDT entries", 2); - log("kernel started", 2); - log("initialized IDT", 2); - log("initialized ISRs", 3); - - clear(); - - // printf testing - - // TODO: Framebuffer upgrade: color output - - int age = 34; - int problems = 124; - char* name = "xamidev"; - - printf("Hello %s, you are %d years old and have %d problems. wow %%\n", name, age, problems); - - long suchwow = 2934342; - char character = 65; - printf("such number %u\nsuch character %c", suchwow, character); - - printf("wow negative %d\n", -3742); - printf("such hex %x %X\n", 0xcafe, 0xdeadbeef); - - printf("such pointer %p\n", (void*)0xcafe1234); - - // Div by zero exception - - printf("Lalala, what a beautiful day! %d", 4/0); - - return retvalue; -} diff --git a/iso/boot/kernel.elf b/iso/boot/kernel.elf index 7ee5345edfd6aac3b673981e44bba301b8b89265..774221aa9434edffc39fa6130f9a2f106ff5c3a8 100755 GIT binary patch delta 2361 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 < 32) { - printf("%s Exception. Halting!\n", exception_messages[r->int_no]); + printf("\n\n*** [Kernel panic - %s Exception] ***\nInterrupt error code %u\nedi: %x esi: %u ebp: %u esp: %u\nebx: %u edx: %u ecx: %u eax: %u\neip: %x cs:%x eflags: %x ss: %x\ngs: %x fs: %x es: %x ds: %x\nHalting!\n", exception_messages[r->int_no], r->err_code, r->edi, r->esi, r->ebp, r->esp, r->ebx, r->edx, r->ecx, r->eax, r->eip, r->cs, r->eflags, r->ss, r->gs, r->fs, r->es, r->ds); for (;;); } } + diff --git a/kernel.elf b/kernel.elf index 7ee5345edfd6aac3b673981e44bba301b8b89265..774221aa9434edffc39fa6130f9a2f106ff5c3a8 100755 GIT binary patch delta 2361 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