More robust handling of unknown target state for step/continue packet.
git-svn-id: svn://svn.berlios.de/openocd/trunk@573 b42882b7-edfa-0310-969c-e2dbd0fdcd60__archive__
parent
7280d4a2c7
commit
f62ba35507
|
@ -1855,12 +1855,24 @@ int gdb_input_inner(connection_t *connection)
|
|||
case 'c':
|
||||
case 's':
|
||||
{
|
||||
/* We're running/stepping, in which case we can
|
||||
* forward log output until the target is halted */
|
||||
gdb_connection_t *gdb_con = connection->priv;
|
||||
gdb_con->frontend_state = TARGET_RUNNING;
|
||||
log_add_callback(gdb_log_callback, connection);
|
||||
gdb_step_continue_packet(connection, target, packet, packet_size);
|
||||
if (target->state != TARGET_HALTED)
|
||||
{
|
||||
/* If the target isn't in the halted state, then we can't
|
||||
* step/continue. This might be early setup, etc.
|
||||
*/
|
||||
char sig_reply[4];
|
||||
snprintf(sig_reply, 4, "T%2.2x", 2);
|
||||
gdb_put_packet(connection, sig_reply, 3);
|
||||
} else
|
||||
{
|
||||
/* We're running/stepping, in which case we can
|
||||
* forward log output until the target is halted
|
||||
*/
|
||||
gdb_connection_t *gdb_con = connection->priv;
|
||||
gdb_con->frontend_state = TARGET_RUNNING;
|
||||
log_add_callback(gdb_log_callback, connection);
|
||||
gdb_step_continue_packet(connection, target, packet, packet_size);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'v':
|
||||
|
|
Loading…
Reference in New Issue