summaryrefslogtreecommitdiff
path: root/viengoos/sysdeps/x86_64/idt.c
diff options
context:
space:
mode:
Diffstat (limited to 'viengoos/sysdeps/x86_64/idt.c')
-rw-r--r--viengoos/sysdeps/x86_64/idt.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/viengoos/sysdeps/x86_64/idt.c b/viengoos/sysdeps/x86_64/idt.c
index 12a0845..a27f1fd 100644
--- a/viengoos/sysdeps/x86_64/idt.c
+++ b/viengoos/sysdeps/x86_64/idt.c
@@ -334,7 +334,7 @@ int in_interrupt_handler;
#endif
/* We need to disable interrupts before triggering some asserts... */
-#ifdef NDEBUG
+#ifndef NDEBUG
# define ASSERTX(x, fmt, ...) \
do { \
if (!(x)) \
@@ -392,6 +392,7 @@ handler (struct interrupt_context *t, bool from_kernel)
from_kernel ? "kernel" : "user space",
t->err, t->rip, t->cs, t->rflags.raw, RFLAGS_PRINTF (t->rflags),
t->rsp, t->ss, cr2,
+ db6,
last_branch_from_ip,
last_branch_to_ip,
last_exception_from_ip,
@@ -400,7 +401,7 @@ handler (struct interrupt_context *t, bool from_kernel)
if (current_thread)
printf ("Current thread: " OBJECT_NAME_FMT":\n"REGS_FMT"\n",
- OBJECT_NAME_PRINTF (current_thread),
+ OBJECT_NAME_PRINTF ((struct vg_object *) current_thread),
REGS_PRINTF (current_thread));
else
printf ("current_thread is NULL.\n");
@@ -431,7 +432,8 @@ handler (struct interrupt_context *t, bool from_kernel)
#ifndef NDEBUG
/* Assert that interrupts are not enabled. */
- struct rflags rflags = { 0 };
+ struct rflags rflags;
+ rflags.raw = 0;
asm ("pushfq\n\t"
"popq %0" : "=r" (rflags));
assertx (! rflags.if_,