This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/5983

-- gerrit

commit 1b54faf962021ded670b08f1f4a930c348bdceeb
Author: Antonio Borneo <[email protected]>
Date:   Sat Dec 19 22:31:29 2020 +0100

    gdb_server: fix HW thread status at gdb attach
    
    At gdb attach, the event TARGET_EVENT_GDB_ATTACH is in charge of
    halting the target.
    For HW thread, rtos_update_threads() should be called after the
    event to detect and record the new 'halted' status. Instead it is
    called immediately before the event, thus reading the status
    before the halt.
    
    Move after the event the call to rtos_update_threads().
    
    Change-Id: Iab3480ea0f5283ed6580f0f6c11200083197d1e9
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index c1e90a0..9e44287 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -969,15 +969,6 @@ static int gdb_new_connection(struct connection 
*connection)
        breakpoint_clear_target(target);
        watchpoint_clear_target(target);
 
-       if (target->rtos) {
-               /* clean previous rtos session if supported*/
-               if (target->rtos->type->clean)
-                       target->rtos->type->clean(target);
-
-               /* update threads */
-               rtos_update_threads(target);
-       }
-
        /* remove the initial ACK from the incoming buffer */
        retval = gdb_get_char(connection, &initial_ack);
        if (retval != ERROR_OK)
@@ -990,6 +981,15 @@ static int gdb_new_connection(struct connection 
*connection)
                gdb_putback_char(connection, initial_ack);
        target_call_event_callbacks(target, TARGET_EVENT_GDB_ATTACH);
 
+       if (target->rtos) {
+               /* clean previous rtos session if supported*/
+               if (target->rtos->type->clean)
+                       target->rtos->type->clean(target);
+
+               /* update threads */
+               rtos_update_threads(target);
+       }
+
        if (gdb_use_memory_map) {
                /* Connect must fail if the memory map can't be set up 
correctly.
                 *

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to