X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fhelper%2Flog.c;h=b6fab016962e0941b0e451557379f89c1849ae5a;hb=690e054a3d8c8847432c31224743b0f9dbd0f1bf;hp=7450fef50b1d4e1e664fbf074e144e0a55898a0b;hpb=1dd5277ba3eb8c5938832b41c2bf6cb5bf19146e;p=openocd diff --git a/src/helper/log.c b/src/helper/log.c index 7450fef5..b6fab016 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -2,7 +2,7 @@ * Copyright (C) 2005 by Dominic Rath * * Dominic.Rath@gmx.de * * * - * Copyright (C) 2007,2008 Øyvind Harboe * + * Copyright (C) 2007-2010 Øyvind Harboe * * oyvind.harboe@zylin.com * * * * Copyright (C) 2008 by Spencer Oliver * @@ -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) { @@ -197,21 +159,16 @@ static void log_puts(enum log_levels level, const char *file, int line, const ch #endif string); } - else if (server_use_pipes == 0) + else { /* 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); @@ -284,21 +241,6 @@ COMMAND_HANDLER(handle_debug_level_command) else if (CMD_ARGC > 1) return ERROR_COMMAND_SYNTAX_ERROR; - 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 - */ - FILE* file = fopen("openocd.log", "w"); - if (file) - { - log_output = file; - LOG_WARNING("enabling logfile output because " - "we are using pipes to talk to GDB."); - } - } - command_print(CMD_CTX, "debug_level: %i", debug_level); return ERROR_OK;