forked from auracaster/openocd
* fixed malloc corruption in target->debug_reason
* GDB remote server will now remain online even if the target is in a funny state, e.g. if it requires a reset, it is running while GDB is not in the continue or step packet, e.g. via monitor resume/halt commands in GDB script. * Added some _DEBUG_GDB_IO_ debug tools * Fixed a couple of GDB server lockups, e.g. when O packets detect a severed connection * added ACK upon connection (send +). * added keep-alive messages to reset so GDB protocol remains happy. * fixed crash when timing out connection to GDB git-svn-id: svn://svn.berlios.de/openocd/trunk@445 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
@@ -122,7 +122,7 @@ char *target_debug_reason_strings[] =
|
||||
{
|
||||
"debug request", "breakpoint", "watchpoint",
|
||||
"watchpoint and breakpoint", "single step",
|
||||
"target not halted"
|
||||
"target not halted", "undefined"
|
||||
};
|
||||
|
||||
char *target_endianess_strings[] =
|
||||
@@ -362,7 +362,11 @@ int target_process_reset(struct command_context_s *cmd_ctx)
|
||||
command_print(cmd_ctx, "Timed out waiting for reset");
|
||||
goto done;
|
||||
}
|
||||
usleep(100*1000); /* Do not eat all cpu */
|
||||
/* this will send alive messages on e.g. GDB remote protocol.
|
||||
* GDB warns me that I'm sending a zero length formatting message,
|
||||
* which is strange, but in fact what is intended here. */
|
||||
usleep(500*1000);
|
||||
USER_N("");
|
||||
goto again;
|
||||
}
|
||||
}
|
||||
@@ -1178,6 +1182,7 @@ int handle_target_command(struct command_context_s *cmd_ctx, char *cmd, char **a
|
||||
(*last_target_p)->backup_working_area = 0;
|
||||
|
||||
(*last_target_p)->state = TARGET_UNKNOWN;
|
||||
(*last_target_p)->debug_reason = DBG_REASON_UNDEFINED;
|
||||
(*last_target_p)->reg_cache = NULL;
|
||||
(*last_target_p)->breakpoints = NULL;
|
||||
(*last_target_p)->watchpoints = NULL;
|
||||
|
||||
Reference in New Issue
Block a user