This is an automated email from Gerrit.

Tomas Vanek (van...@fbl.cz) just uploaded a new patch set to Gerrit, which you 
can find at http://openocd.zylin.com/4432

-- gerrit

commit 163e51538608b0ef9a027cf421e23dd2db61285e
Author: Tomas Vanek <van...@fbl.cz>
Date:   Fri Feb 23 19:27:28 2018 +0100

    gdb_server: fix vCont
    
    Change-Id: Ic79db7c2b798a35283ff752e9b12475486a1f31a
    Signed-off-by: Tomas Vanek <van...@fbl.cz>

diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index cbf1ca9..c341dca 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -2598,8 +2598,8 @@ static bool gdb_handle_vcont_packet(struct connection 
*connection, const char *p
        if (parse[0] == 'c') {
                LOG_DEBUG("target %s continue", target_name(target));
                log_add_callback(gdb_log_callback, connection);
-               retval = target_resume(target, 1, 0, 0, 0);
-               if (retval == ERROR_OK) {
+               target_resume(target, 1, 0, 0, 0);
+               if (target->state == TARGET_RUNNING) {
                        gdb_connection->frontend_state = TARGET_RUNNING;
                        target_call_event_callbacks(target, 
TARGET_EVENT_GDB_START);
                }
@@ -2639,15 +2639,17 @@ static bool gdb_handle_vcont_packet(struct connection 
*connection, const char *p
                        }
 
                        LOG_DEBUG("target %s single-step thread %"PRId64, 
target_name(ct), thread_id);
+                       log_add_callback(gdb_log_callback, connection);
+                       target_call_event_callbacks(ct, TARGET_EVENT_GDB_START);
+
                        retval = target_step(ct, 1, 0, handle_breakpoint);
                        if (retval == ERROR_OK) {
                                gdb_signal_reply(target, connection);
                                /* stop forwarding log packets! */
                                log_remove_callback(gdb_log_callback, 
connection);
                        } else
-                       if (retval == ERROR_TARGET_TIMEOUT) {
+                       if (target->state == TARGET_RUNNING) {
                                gdb_connection->frontend_state = TARGET_RUNNING;
-                               target_call_event_callbacks(ct, 
TARGET_EVENT_GDB_START);
                        }
                } else {
                        LOG_ERROR("Unknown vCont packet");

-- 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to