Retired gdb_attach. gdb-detach event covers this functionality.

This commit is contained in:
Øyvind Harboe 2009-10-13 13:44:15 +02:00
parent 4d32b6eee9
commit 79bf27da71
2 changed files with 3 additions and 71 deletions

View File

@ -1638,11 +1638,6 @@ GDB behaviour is not sufficient. GDB normally uses hardware
breakpoints if the memory map has been set up for flash regions. breakpoints if the memory map has been set up for flash regions.
@end deffn @end deffn
@deffn {Config Command} gdb_detach (@option{resume}|@option{reset}|@option{halt}|@option{nothing})
Configures what OpenOCD will do when GDB detaches from the daemon.
Default behaviour is @option{resume}.
@end deffn
@anchor{gdb_flash_program} @anchor{gdb_flash_program}
@deffn {Config Command} gdb_flash_program (@option{enable}|@option{disable}) @deffn {Config Command} gdb_flash_program (@option{enable}|@option{disable})
Set to @option{enable} to cause OpenOCD to program the flash memory when a Set to @option{enable} to cause OpenOCD to program the flash memory when a

View File

@ -52,17 +52,6 @@ static const char *DIGITS = "0123456789abcdef";
static void gdb_log_callback(void *priv, const char *file, int line, static void gdb_log_callback(void *priv, const char *file, int line,
const char *function, const char *string); const char *function, const char *string);
enum gdb_detach_mode
{
GDB_DETACH_RESUME,
GDB_DETACH_RESET,
GDB_DETACH_HALT,
GDB_DETACH_NOTHING
};
/* target behaviour on gdb detach */
enum gdb_detach_mode detach_mode = GDB_DETACH_RESUME;
/* number of gdb connections, mainly to supress gdb related debugging spam /* number of gdb connections, mainly to supress gdb related debugging spam
* in helper/log.c when no gdb connections are actually active */ * in helper/log.c when no gdb connections are actually active */
int gdb_actual_connections; int gdb_actual_connections;
@ -1960,29 +1949,11 @@ int gdb_v_packet(connection_t *connection, target_t *target, char *packet, int p
int gdb_detach(connection_t *connection, target_t *target) int gdb_detach(connection_t *connection, target_t *target)
{ {
gdb_service_t *gdb_service = connection->service->priv;
switch (detach_mode) target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_DETACH);
{
case GDB_DETACH_RESUME:
target_handle_event(target, TARGET_EVENT_OLD_pre_resume);
target_resume(target, 1, 0, 1, 0);
break;
case GDB_DETACH_RESET: return gdb_put_packet(connection, "OK", 2);
/* FIX?? make this configurable?? */
target_process_reset(connection->cmd_ctx, RESET_HALT);
break;
case GDB_DETACH_HALT:
target_halt(target);
break;
case GDB_DETACH_NOTHING:
break;
}
gdb_put_packet(connection, "OK", 2);
return ERROR_OK;
} }
static void gdb_log_callback(void *priv, const char *file, int line, static void gdb_log_callback(void *priv, const char *file, int line,
@ -2311,37 +2282,6 @@ int handle_gdb_port_command(struct command_context_s *cmd_ctx, char *cmd, char *
return ERROR_OK; return ERROR_OK;
} }
int handle_gdb_detach_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc == 1)
{
if (strcmp(args[0], "resume") == 0)
{
detach_mode = GDB_DETACH_RESUME;
return ERROR_OK;
}
else if (strcmp(args[0], "reset") == 0)
{
detach_mode = GDB_DETACH_RESET;
return ERROR_OK;
}
else if (strcmp(args[0], "halt") == 0)
{
detach_mode = GDB_DETACH_HALT;
return ERROR_OK;
}
else if (strcmp(args[0], "nothing") == 0)
{
detach_mode = GDB_DETACH_NOTHING;
return ERROR_OK;
}
else
LOG_WARNING("invalid gdb_detach configuration directive: %s", args[0]);
}
return ERROR_COMMAND_SYNTAX_ERROR;
}
int handle_gdb_memory_map_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) int handle_gdb_memory_map_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
if (argc == 1) if (argc == 1)
@ -2445,9 +2385,6 @@ int gdb_register_commands(command_context_t *command_context)
COMMAND_ANY, "next stepi will return immediately allowing GDB fetch register state without affecting target state"); COMMAND_ANY, "next stepi will return immediately allowing GDB fetch register state without affecting target state");
register_command(command_context, NULL, "gdb_port", handle_gdb_port_command, register_command(command_context, NULL, "gdb_port", handle_gdb_port_command,
COMMAND_ANY, "daemon configuration command gdb_port"); COMMAND_ANY, "daemon configuration command gdb_port");
register_command(command_context, NULL, "gdb_detach", handle_gdb_detach_command,
COMMAND_CONFIG, "resume/reset/halt/nothing - "
"specify behavior when GDB detaches from the target");
register_command(command_context, NULL, "gdb_memory_map", handle_gdb_memory_map_command, register_command(command_context, NULL, "gdb_memory_map", handle_gdb_memory_map_command,
COMMAND_CONFIG, "enable or disable memory map"); COMMAND_CONFIG, "enable or disable memory map");
register_command(command_context, NULL, "gdb_flash_program", handle_gdb_flash_program_command, register_command(command_context, NULL, "gdb_flash_program", handle_gdb_flash_program_command,