]> git.sur5r.net Git - openocd/commitdiff
Fix Semihosting FileIO for targets using vcont packet
authorOmair Javaid <omair.javaid@linaro.org>
Thu, 31 May 2018 00:36:53 +0000 (05:36 +0500)
committerMatthias Welwarsky <matthias@welwarsky.de>
Wed, 6 Jun 2018 14:23:04 +0000 (15:23 +0100)
This patch fixes a bug where target fails to resume after completing GDB FileIO.
We need to update target last run control information to decide resumption. This
was not being done for vcont packets.

Change-Id: I44bea31720f8b877dba97d77a202303d546ea5bd
Signed-off-by: Omair Javaid <omair.javaid@linaro.org>
Reviewed-on: http://openocd.zylin.com/4539
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
src/server/gdb_server.c

index f54db9e359675116d36a4bb0318f751c459badad..a9c2a64062f3d4971cf80b8d8f45ea71371a6f15 100644 (file)
@@ -2706,6 +2706,7 @@ static bool gdb_handle_vcont_packet(struct connection *connection, const char *p
 
        /* simple case, a continue packet */
        if (parse[0] == 'c') {
+               gdb_running_type = 'c';
                LOG_DEBUG("target %s continue", target_name(target));
                log_add_callback(gdb_log_callback, connection);
                retval = target_resume(target, 1, 0, 0, 0);
@@ -2732,6 +2733,7 @@ static bool gdb_handle_vcont_packet(struct connection *connection, const char *p
 
        /* single-step or step-over-breakpoint */
        if (parse[0] == 's') {
+               gdb_running_type = 's';
                bool fake_step = false;
 
                if (strncmp(parse, "s:", 2) == 0) {