From d038067213bf873aa092a62b0966c578f9d51040 Mon Sep 17 00:00:00 2001 From: Zhang Hai Peng Date: Mon, 17 Feb 2025 11:14:29 +0800 Subject: [PATCH] fix(coredump): only clear high bit in PC when set (cherry picked from commit eaefd0bd25862fcc7d98c95fbc1f1f0c6a48dca7) Co-authored-by: Erhan Kurubas --- components/espcoredump/src/port/xtensa/core_dump_port.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/espcoredump/src/port/xtensa/core_dump_port.c b/components/espcoredump/src/port/xtensa/core_dump_port.c index 971da1b268..bb5ba0f807 100644 --- a/components/espcoredump/src/port/xtensa/core_dump_port.c +++ b/components/espcoredump/src/port/xtensa/core_dump_port.c @@ -249,7 +249,7 @@ static esp_err_t esp_core_dump_get_regs_from_stack(void* stack_addr, for (int i = 0; i < XT_SOL_AR_NUM; i++) { regs->ar[i] = stack_arr[XT_SOL_AR_START + i]; } - regs->pc = (regs->pc & 0x3fffffff); + if (regs->pc & 0x80000000) { regs->pc = (regs->pc & 0x3fffffff); }