* 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 *
#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 */
va_end(ap);
}
-/* change the current debug level on the fly
- * 0: only ERRORS
- * 1: + WARNINGS
- * 2: + INFORMATIONAL MSGS
- * 3: + DEBUG MSGS
- */
COMMAND_HANDLER(handle_debug_level_command)
{
if (CMD_ARGC == 1)
{
- unsigned new_level;
- COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], new_level);
- debug_level = MIN(new_level, LOG_LVL_DEBUG);
- }
- 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)
+ int new_level;
+ COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], new_level);
+ if ((debug_level > LOG_LVL_DEBUG) || (new_level < LOG_LVL_SILENT))
{
- log_output = file;
- LOG_WARNING("enabling logfile output because "
- "we are using pipes to talk to GDB.");
+ LOG_ERROR("level must be between %d and %d", LOG_LVL_SILENT, LOG_LVL_DEBUG);
+ return ERROR_COMMAND_SYNTAX_ERROR;
}
+ debug_level = new_level;
}
+ else if (CMD_ARGC > 1)
+ return ERROR_COMMAND_SYNTAX_ERROR;
command_print(CMD_CTX, "debug_level: %i", debug_level);
for (cb = log_callbacks; cb; cb = cb->next)
{
if (cb->fn == fn && cb->priv == priv)
- return ERROR_INVALID_ARGUMENTS;
+ return ERROR_COMMAND_SYNTAX_ERROR;
}
/* alloc memory, it is safe just to return in case of an error, no need for the caller to check this */
}
/* no such item */
- return ERROR_INVALID_ARGUMENTS;
+ return ERROR_COMMAND_SYNTAX_ERROR;
}
/* return allocated string w/printf() result */