-/* SPDX-License-Identifier: GPL-2.0-or-later */
+// SPDX-License-Identifier: GPL-2.0-or-later
/***************************************************************************
* Copyright (C) 2005 by Dominic Rath *
#include "command.h"
#include "replacements.h"
#include "time_support.h"
+#include <server/gdb_server.h>
#include <server/server.h>
#include <stdarg.h>
COMMAND_HANDLER(handle_log_output_command)
{
- if (CMD_ARGC == 0 || (CMD_ARGC == 1 && strcmp(CMD_ARGV[0], "default") == 0)) {
- if (log_output != stderr && log_output) {
- /* Close previous log file, if it was open and wasn't stderr. */
- fclose(log_output);
- }
- log_output = stderr;
- LOG_DEBUG("set log_output to default");
- return ERROR_OK;
- }
- if (CMD_ARGC == 1) {
- FILE *file = fopen(CMD_ARGV[0], "w");
+ if (CMD_ARGC > 1)
+ return ERROR_COMMAND_SYNTAX_ERROR;
+
+ FILE *file;
+ if (CMD_ARGC == 1 && strcmp(CMD_ARGV[0], "default") != 0) {
+ file = fopen(CMD_ARGV[0], "w");
if (!file) {
- LOG_ERROR("failed to open output log '%s'", CMD_ARGV[0]);
+ command_print(CMD, "failed to open output log \"%s\"", CMD_ARGV[0]);
return ERROR_FAIL;
}
- if (log_output != stderr && log_output) {
- /* Close previous log file, if it was open and wasn't stderr. */
- fclose(log_output);
- }
- log_output = file;
- LOG_DEBUG("set log_output to \"%s\"", CMD_ARGV[0]);
- return ERROR_OK;
+ command_print(CMD, "set log_output to \"%s\"", CMD_ARGV[0]);
+ } else {
+ file = stderr;
+ command_print(CMD, "set log_output to default");
}
- return ERROR_COMMAND_SYNTAX_ERROR;
+ if (log_output != stderr && log_output) {
+ /* Close previous log file, if it was open and wasn't stderr. */
+ fclose(log_output);
+ }
+ log_output = file;
+ return ERROR_OK;
}
static const struct command_registration log_command_handlers[] = {
.handler = handle_log_output_command,
.mode = COMMAND_ANY,
.help = "redirect logging to a file (default: stderr)",
- .usage = "[file_name | \"default\"]",
+ .usage = "[file_name | 'default']",
},
{
.name = "debug_level",
log_output = NULL;
}
-int set_log_output(struct command_context *cmd_ctx, FILE *output)
-{
- log_output = output;
- return ERROR_OK;
-}
-
/* add/remove log callback handler */
int log_add_callback(log_callback_fn fn, void *priv)
{
static void gdb_timeout_warning(int64_t delta_time)
{
- extern int gdb_actual_connections;
-
- if (gdb_actual_connections)
+ if (gdb_get_actual_connections())
LOG_WARNING("keep_alive() was not invoked in the "
"%d ms timelimit. GDB alive packet not "
"sent! (%" PRId64 " ms). Workaround: increase "