diff options
author | trimill <trimill@trimillxyz.org> | 2024-01-30 10:19:33 -0500 |
---|---|---|
committer | trimill <trimill@trimillxyz.org> | 2024-01-30 10:19:33 -0500 |
commit | 6b8f33c22d41488b88fcd35331867858d8f67763 (patch) | |
tree | 4a62ac9c6136a9e9b94cab0b6838add70accfe31 /src/arch/amd64/idt.S | |
parent | refactor, improve exception message (diff) | |
download | corn-6b8f33c22d41488b88fcd35331867858d8f67763.tar.gz corn-6b8f33c22d41488b88fcd35331867858d8f67763.tar.bz2 corn-6b8f33c22d41488b88fcd35331867858d8f67763.zip |
added backtraces
Diffstat (limited to 'src/arch/amd64/idt.S')
-rw-r--r-- | src/arch/amd64/idt.S | 13 |
1 files changed, 9 insertions, 4 deletions
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 |