X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fhelper%2Flog.c;h=da227bd72f279c3980c0cc7d9647238a1e83b6c0;hb=00017c90ae82d3237f5a4784caa695459c5897d2;hp=6adde4b9dc7f8575791241396b11160f0d45ac2d;hpb=c538a830cdaafa92c9e9a624d84915cc39cce05b;p=openocd.git diff --git a/src/helper/log.c b/src/helper/log.c index 6adde4b9dc..da227bd72f 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -114,44 +114,6 @@ static void log_forward(const char *file, unsigned line, const char *function, c } } -void log_try(void) -{ - log_forward_count++; -} - -void log_catch(void) -{ - assert(log_forward_count>0); - log_forward_count--; -} - -void log_rethrow(void) -{ - log_catch(); - if (log_forward_count==0) - { - struct store_log_forward *log; - - log = log_head; - while (log != NULL) - { - log_forward(log->file, log->line, log->function, log->string); - - struct store_log_forward *t=log; - log = log->next; - - free((void *)t->file); - free((void *)t->function); - free((void *)t->string); - free(t); - - } - - log_head = NULL; - } -} - - /* The log_puts() serves to somewhat different goals: * * - logging @@ -177,7 +139,7 @@ static void log_puts(enum log_levels level, const char *file, int line, const ch if (f != NULL) file = f + 1; - if (strchr(string, '\n') != NULL) + if (strlen(string) > 0) { if (debug_level >= LOG_LVL_DEBUG) { @@ -201,17 +163,12 @@ static void log_puts(enum log_levels level, const char *file, int line, const ch { /* if we are using gdb through pipes then we do not want any output * to the pipe otherwise we get repeated strings */ - if (strcmp(string, "\n") != 0) - { - /* print human readable output - but skip empty lines */ - fprintf(log_output, "%s%s", - (level > LOG_LVL_USER)?log_strings[level + 1]:"", string); - } + fprintf(log_output, "%s%s", + (level > LOG_LVL_USER)?log_strings[level + 1]:"", string); } } else { - /* only entire lines are logged. Otherwise it's - * single chars intended for the log callbacks. */ + /* Empty strings are sent to log callbacks to keep e.g. gdbserver alive, here we do nothing. */ } fflush(log_output); @@ -286,13 +243,16 @@ COMMAND_HANDLER(handle_debug_level_command) if (debug_level >= LOG_LVL_DEBUG && server_use_pipes == 1) { - /* if we are enabling debug info then we need to write to a log file - * otherwise the pipe will get full and cause issues with gdb */ + /* if we are enabling debug info then we need to write to a + * log file otherwise the pipe will get full and cause issues + * with gdb + */ FILE* file = fopen("openocd.log", "w"); if (file) { log_output = file; - LOG_WARNING("enabling log output as we are using pipes"); + LOG_WARNING("enabling logfile output because " + "we are using pipes to talk to GDB."); } } @@ -319,17 +279,19 @@ COMMAND_HANDLER(handle_log_output_command) static struct command_registration log_command_handlers[] = { { .name = "log_output", - .handler = &handle_log_output_command, + .handler = handle_log_output_command, .mode = COMMAND_ANY, .help = "redirect logging to a file (default: stderr)", - .usage = "", + .usage = "file_name", }, { .name = "debug_level", - .handler = &handle_debug_level_command, + .handler = handle_debug_level_command, .mode = COMMAND_ANY, - .help = "sets the verbosity level of debugging output", - .usage = "", + .help = "Sets the verbosity level of debugging output. " + "0 shows errors only; 1 adds warnings; " + "2 (default) adds other info; 3 adds debugging.", + .usage = "number", }, COMMAND_REGISTRATION_DONE };