From ba3f3935abd7c639fb807e0d3573d8a345d5f92f Mon Sep 17 00:00:00 2001 From: Thomas Debrunner Date: Mon, 31 Oct 2022 10:19:25 +0100 Subject: [PATCH] hardfault_log: Correctly annotate adddresses for the stack trace in the hardfault log. --- src/systemcmds/hardfault_log/hardfault_log.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/systemcmds/hardfault_log/hardfault_log.c b/src/systemcmds/hardfault_log/hardfault_log.c index 30e3616ddd..3f0b9ca8fe 100644 --- a/src/systemcmds/hardfault_log/hardfault_log.c +++ b/src/systemcmds/hardfault_log/hardfault_log.c @@ -363,7 +363,7 @@ static int write_stack(bool inValid, int winsize, uint32_t wtopaddr, ret = -EIO; } - wtopaddr--; + wtopaddr -= sizeof(stack_word_t); } } } @@ -621,7 +621,7 @@ static int write_intterupt_stack(int fdin, int fdout, info_s *pi, char *buffer, lseek(fdin, offsetof(fullcontext_s, istack), SEEK_SET); ret = write_stack((pi->flags & eInvalidIntStackPrt) != 0, CONFIG_ISTACK_SIZE, - pi->stacks.interrupt.sp + CONFIG_ISTACK_SIZE / 2, + pi->stacks.interrupt.sp + (CONFIG_ISTACK_SIZE / 2) * sizeof(stack_word_t), pi->stacks.interrupt.top, pi->stacks.interrupt.sp, pi->stacks.interrupt.top - pi->stacks.interrupt.size, @@ -644,7 +644,7 @@ static int write_user_stack(int fdin, int fdout, info_s *pi, char *buffer, lseek(fdin, offsetof(fullcontext_s, ustack), SEEK_SET); ret = write_stack((pi->flags & eInvalidUserStackPtr) != 0, CONFIG_USTACK_SIZE, - pi->stacks.user.sp + CONFIG_USTACK_SIZE / 2, + pi->stacks.user.sp + (CONFIG_USTACK_SIZE / 2) * sizeof(stack_word_t), pi->stacks.user.top, pi->stacks.user.sp, pi->stacks.user.top - pi->stacks.user.size,