This is an automated email from Gerrit.

"Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/6769

-- gerrit

commit 67cd7ab4be610904e0f4cbe61b43e02ac75a2397
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sat Dec 4 18:38:56 2021 +0100

    gdb_server: fix a comment in gdb_new_connection()
    
    On 2008-03-05, before git's age, commit 6d9501467441 adds a
    comment about unobserved ACK supposedly sent by GDB at connection.
    
    The ACK is sent since GDB 3.95 (1999-05-04), but a bug introduced
    in GDB 6.5 (2006-06-21) and fixed in GDB 7.0 (2009-10-06) makes
    GDB sending the query for "supported packets" before sending the
    ACK. Due to the bug, the author of the commit failed to see the
    ACK.
    
    Change-Id: I574a8013e7d159d1c71087af83b7c2ce92be86bd
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>

diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index b68d97e9d..f10552e15 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -1003,16 +1003,19 @@ static int gdb_new_connection(struct connection 
*connection)
        breakpoint_clear_target(target);
        watchpoint_clear_target(target);
 
-       /* remove the initial ACK from the incoming buffer */
+       /* Since version 3.95 (gdb-19990504), with the exclusion of 6.5~6.8, GDB
+        * sends an ACK at connection with the following comment in its source 
code:
+        * "Ack any packet which the remote side has already sent."
+        * LLDB does the same since the first gdb-remote implementation.
+        * Remove the initial ACK from the incoming buffer.
+        */
        retval = gdb_get_char(connection, &initial_ack);
        if (retval != ERROR_OK)
                return retval;
 
-       /* FIX!!!??? would we actually ever receive a + here???
-        * Not observed.
-        */
        if (initial_ack != '+')
                gdb_putback_char(connection, initial_ack);
+
        target_call_event_callbacks(target, TARGET_EVENT_GDB_ATTACH);
 
        if (target->rtos) {

-- 

Reply via email to