diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/helper/log.c | 10 | ||||
-rw-r--r-- | src/server/gdb_server.c | 2 | ||||
-rw-r--r-- | src/target/target.c | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/helper/log.c b/src/helper/log.c index cdd7b7bf..b3898723 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -60,8 +60,6 @@ static int count = 0; */ static void log_puts(enum log_levels level, const char *file, int line, const char *function, const char *string) { - log_callback_t *cb; - if (level == LOG_OUTPUT) { /* do not prepend any headers, just print out what we were given and return */ @@ -98,10 +96,14 @@ static void log_puts(enum log_levels level, const char *file, int line, const ch /* Never forward LOG_DEBUG, too verbose and they can be found in the log if need be */ if (level <= LOG_INFO) { - log_callback_t *cb; - for (cb = log_callbacks; cb; cb = cb->next) + log_callback_t *cb, *next; + cb = log_callbacks; + /* DANGER!!!! the log callback can remove itself!!!! */ + while (cb) { + next=cb->next; cb->fn(cb->priv, file, line, function, string); + cb=next; } } } diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 9558aef9..74722e10 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -529,7 +529,7 @@ int gdb_output_con(connection_t *connection, const char* line) int gdb_output(struct command_context_s *context, char* line) { /* this will be dumped to the log and also sent as an O packet if possible */ - USER_N(line); + USER_N("%s", line); return ERROR_OK; } diff --git a/src/target/target.c b/src/target/target.c index 377bb0dc..76f7449b 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -1698,8 +1698,6 @@ int handle_resume_command(struct command_context_s *cmd_ctx, char *cmd, char **a target_process_events(cmd_ctx); - target_arch_state(target); - return retval; } |