diff options
Diffstat (limited to 'viengoos/sysdeps/x86_64/idt.c')
-rw-r--r-- | viengoos/sysdeps/x86_64/idt.c | 8 |
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_, |