This is an automated email from Gerrit.

"Frank Dischner <frank.disch...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/6934

-- gerrit

commit 88ffd5817d9d495c4a15bf6164d3f2b28b38aae2
Author: Frank Dischner <frank.disch...@gmail.com>
Date:   Sun Apr 17 21:12:39 2022 -0500

    FreeRTOS: Fix current thread ID when no threads are active
    
    When there are no rtos threads or none are active, a fake thread with
    ID 1 is created for the current execution, but the current thread ID was
    never set to this new fake ID. This would lead to an incorrect attempt to
    read stacked registers for this fake thread. Explicitly setting the
    current thread ID to the fake ID ensures that the registers are read from
    the core instead of calling freertos_get_thread_reg_list.
    
    Signed-off-by: Frank Dischner <frank.disch...@gmail.com>
    Change-Id: I694509a0e01df089429b20ff1b879fc0592b532d

diff --git a/src/rtos/FreeRTOS.c b/src/rtos/FreeRTOS.c
index f7ce8cd564..99a48e0056 100644
--- a/src/rtos/FreeRTOS.c
+++ b/src/rtos/FreeRTOS.c
@@ -218,7 +218,8 @@ static int freertos_update_threads(struct rtos *rtos)
                        LOG_ERROR("Error allocating memory for %d threads", 
thread_list_size);
                        return ERROR_FAIL;
                }
-               rtos->thread_details->threadid = 1;
+               rtos->current_thread = 1;
+               rtos->thread_details->threadid = rtos->current_thread;
                rtos->thread_details->exists = true;
                rtos->thread_details->extra_info_str = NULL;
                rtos->thread_details->thread_name_str = malloc(sizeof(tmp_str));

-- 

Reply via email to