From 1a7a178168e450c1707646778af0d58e0043df88 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sun, 7 Dec 2025 12:06:14 -0300 Subject: [PATCH] x86-64/arch_prof: fix backtrace --- kernel-src/arch/x86-64/arch_prof.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel-src/arch/x86-64/arch_prof.c b/kernel-src/arch/x86-64/arch_prof.c index 985a9b2c..d533c315 100644 --- a/kernel-src/arch/x86-64/arch_prof.c +++ b/kernel-src/arch/x86-64/arch_prof.c @@ -72,8 +72,10 @@ static uint8_t get_backtrace(context_t *context, uintptr_t *data) { if (IS_USER_ADDRESS(context->rip)) return 0; + data[0] = context->rip; + uint64_t *rbp = (uint64_t *)context->rbp; - uint8_t done = 0; + uint8_t done = 1; for (;;) { if (IS_USER_ADDRESS(rbp) || done == 255) @@ -83,7 +85,7 @@ static uint8_t get_backtrace(context_t *context, uintptr_t *data) { if (IS_USER_ADDRESS(rip)) break; - data[done++] = rip; + data[done++] = rip - 1; rbp = (uint64_t *)*rbp; }