Skip to content

Commit

Permalink
server/gdb_server: Step unavailable targets.
Browse files Browse the repository at this point in the history
When gdb requests to step an unavailable target, report success. When
the target becomes available, the step can complete.

Change-Id: I969ab56139f72a757552928d59edf6eabd598fa4
Signed-off-by: Tim Newsome <tim@sifive.com>
  • Loading branch information
timsifive committed Sep 27, 2023
1 parent b5e57e1 commit 944fe66
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions src/server/gdb_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -3176,9 +3176,15 @@ static bool gdb_handle_vcont_packet(struct connection *connection, const char *p
return true;
}

retval = target_step(ct, current_pc, 0, 0);
if (retval == ERROR_TARGET_NOT_HALTED)
LOG_INFO("target %s was not halted when step was requested", target_name(ct));
if (ct->state == TARGET_UNAVAILABLE) {
LOG_TARGET_ERROR(ct, "Target is unavailable, so cannot be stepped. "
"Pretending to gdb that it is running until it's available again.");
retval = ERROR_FAIL;
} else {
retval = target_step(ct, current_pc, 0, 0);
if (retval == ERROR_TARGET_NOT_HALTED)
LOG_INFO("target %s was not halted when step was requested", target_name(ct));
}

/* if step was successful send a reply back to gdb */
if (retval == ERROR_OK) {
Expand Down

0 comments on commit 944fe66

Please sign in to comment.