From 6b8f33c22d41488b88fcd35331867858d8f67763 Mon Sep 17 00:00:00 2001 From: trimill Date: Tue, 30 Jan 2024 10:19:33 -0500 Subject: added backtraces --- src/arch/amd64/idt.S | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/arch/amd64/idt.S') diff --git a/src/arch/amd64/idt.S b/src/arch/amd64/idt.S index 32670c8..8cb537e 100644 --- a/src/arch/amd64/idt.S +++ b/src/arch/amd64/idt.S @@ -49,8 +49,10 @@ align 8 isr_stub_%+%1: PUSHALL cld - mov rdi, %1 - mov rsi, 0 + mov rdi, %1 ; exception number + mov rsi, 0 ; placeholder error code + mov rdx, [rsp + 15 * 8] ; instruction pointer + mov rcx, rbp ; base pointer for stack trace call idt_exception_handler POPALL iretq @@ -64,10 +66,13 @@ align 8 isr_stub_%+%1: PUSHALL cld - mov rdi, %1 - pop rsi + mov rdi, %1 ; exception number + mov rsi, [rsp + 15 * 8] ; error code + mov rdx, [rsp + 16 * 8] ; instruction pointer + mov rcx, rbp ; base pointer for stack trace call idt_exception_handler POPALL + sub rsp, 8 ; discard error code iretq %endmacro -- cgit v1.2.3-freya