/* Core dump and executable file functions below target vector, for GDB.
- Copyright (C) 1986-2013 Free Software Foundation, Inc.
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
This file is part of GDB.
#include "defs.h"
#include "arch-utils.h"
-#include "gdb_string.h"
+#include <string.h>
#include <errno.h>
#include <signal.h>
#include <fcntl.h>
/* FIXME: kettenis/20031023: Eventually this variable should
disappear. */
-struct gdbarch *core_gdbarch = NULL;
+static struct gdbarch *core_gdbarch = NULL;
/* Per-core data. Currently, only the section table. Note that these
target sections are *not* mapped in the current address spaces' set
static void core_open (char *, int);
-static void core_detach (struct target_ops *ops, char *, int);
-
static void core_close (void);
static void core_close_cleanup (void *ignore);
if (p)
printf_filtered (_("Core was generated by `%s'.\n"), p);
+ /* Clearing any previous state of convenience variables. */
+ clear_exit_convenience_vars ();
+
siggy = bfd_core_file_failing_signal (core_bfd);
if (siggy > 0)
{
printf_filtered (_("Program terminated with signal %s, %s.\n"),
gdb_signal_to_name (sig), gdb_signal_to_string (sig));
+
+ /* Set the value of the internal variable $_exitsignal,
+ which holds the signal uncaught by the inferior. */
+ set_internalvar_integer (lookup_internalvar ("_exitsignal"),
+ siggy);
}
/* Fetch all registers from core file. */
/* Now, set up the frame cache, and print the top of stack. */
reinit_frame_cache ();
- print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC);
+ print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC, 1);
}
static void
-core_detach (struct target_ops *ops, char *args, int from_tty)
+core_detach (struct target_ops *ops, const char *args, int from_tty)
{
if (args)
error (_("Too many arguments"));