Use UD2 instead of CLI;HLT for CRASH().

This way the kernel prints out a nice register dump so we can find
out where we crashed.
This commit is contained in:
Andreas Kling 2018-10-22 13:07:06 +02:00
parent a9ca75c98b
commit c5e55f4737

View file

@ -2,7 +2,7 @@
#include "VGA.h" #include "VGA.h"
#define CRASH() do { asm volatile("cli;hlt"); } while(0) #define CRASH() do { asm volatile("ud2"); } while(0)
#define ASSERT(x) do { if (!(x)) { kprintf("ASSERTION FAILED: " #x "\n%s:%u in %s\n", __FILE__, __LINE__, __PRETTY_FUNCTION__); CRASH(); } } while(0) #define ASSERT(x) do { if (!(x)) { kprintf("ASSERTION FAILED: " #x "\n%s:%u in %s\n", __FILE__, __LINE__, __PRETTY_FUNCTION__); CRASH(); } } while(0)
#define RELEASE_ASSERT(x) do { if (!(x)) CRASH(); } while(0) #define RELEASE_ASSERT(x) do { if (!(x)) CRASH(); } while(0)
#define ASSERT_NOT_REACHED() ASSERT(false) #define ASSERT_NOT_REACHED() ASSERT(false)