#include "observer.h"
#include "cli/cli-utils.h"
-/* Local function declarations. */
-
-extern void _initialize_core (void);
-
/* You can have any number of hooks for `exec_file_command' command to
call. If there's only one hook, it is set in exec_file_display
hook. If there are two or more hooks, they are set in
/* Backward compatability with old way of specifying core files. */
void
-core_file_command (char *filename, int from_tty)
+core_file_command (const char *filename, int from_tty)
{
dont_repeat (); /* Either way, seems bogus. */
void
reopen_exec_file (void)
{
- char *filename;
int res;
struct stat st;
- struct cleanup *cleanups;
/* Don't do anything if there isn't an exec file. */
if (exec_bfd == NULL)
return;
/* If the timestamp of the exec file has changed, reopen it. */
- filename = xstrdup (bfd_get_filename (exec_bfd));
- cleanups = make_cleanup (xfree, filename);
- res = stat (filename, &st);
+ std::string filename = bfd_get_filename (exec_bfd);
+ res = stat (filename.c_str (), &st);
if (res == 0 && exec_bfd_mtime && exec_bfd_mtime != st.st_mtime)
- exec_file_attach (filename, 0);
+ exec_file_attach (filename.c_str (), 0);
else
/* If we accessed the file since last opening it, close it now;
this stops GDB from holding the executable open after it
exits. */
bfd_cache_close_all ();
-
- do_cleanups (cleanups);
}
\f
/* If we have both a core file and an exec file,
}
\f
-char *
+std::string
memory_error_message (enum target_xfer_status err,
struct gdbarch *gdbarch, CORE_ADDR memaddr)
{
case TARGET_XFER_E_IO:
/* Actually, address between memaddr and memaddr + len was out of
bounds. */
- return xstrprintf (_("Cannot access memory at address %s"),
- paddress (gdbarch, memaddr));
+ return string_printf (_("Cannot access memory at address %s"),
+ paddress (gdbarch, memaddr));
case TARGET_XFER_UNAVAILABLE:
- return xstrprintf (_("Memory at address %s unavailable."),
- paddress (gdbarch, memaddr));
+ return string_printf (_("Memory at address %s unavailable."),
+ paddress (gdbarch, memaddr));
default:
internal_error (__FILE__, __LINE__,
"unhandled target_xfer_status: %s (%s)",
void
memory_error (enum target_xfer_status err, CORE_ADDR memaddr)
{
- char *str;
enum errors exception = GDB_NO_ERROR;
/* Build error string. */
- str = memory_error_message (err, target_gdbarch (), memaddr);
- make_cleanup (xfree, str);
+ std::string str = memory_error_message (err, target_gdbarch (), memaddr);
/* Choose the right error to throw. */
switch (err)
}
/* Throw it. */
- throw_error (exception, ("%s"), str);
+ throw_error (exception, ("%s"), str.c_str ());
}
/* Helper function. */