117 res = stat (filename.c_str (), &st);
127 bfd_cache_close_all ();
138 if (!core_file_matches_executable_p (
core_bfd,
140 warning (_(
"core file may not match specified executable file."));
143 warning (_(
"exec file is newer than core file."));
157 error (_(
"No executable file specified.\n\
158Use the \"file\" or \"exec-file\" command."));
171 return string_printf (_(
"Cannot access memory at address %s"),
174 return string_printf (_(
"Memory at address %s unavailable."),
177 internal_error (
"unhandled target_xfer_status: %s (%s)",
188 enum errors exception = GDB_NO_ERROR;
197 exception = MEMORY_ERROR;
200 exception = NOT_AVAILABLE_ERROR;
205 throw_error (exception, (
"%s"), str.c_str ());
212 gdb_byte *myaddr, ssize_t len)
222 NULL, myaddr + xfered, NULL,
223 memaddr + xfered, len - xfered,
230 xfered += xfered_len;
254read_code (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
265 enum bfd_endian byte_order,
266 LONGEST *return_value)
268 gdb_byte buf[
sizeof (LONGEST)];
283 enum bfd_endian byte_order,
284 ULONGEST *return_value)
286 gdb_byte buf[
sizeof (ULONGEST)];
297 enum bfd_endian byte_order)
299 gdb_byte buf[
sizeof (LONGEST)];
307 enum bfd_endian byte_order)
309 gdb_byte buf[
sizeof (ULONGEST)];
317 enum bfd_endian byte_order)
319 gdb_byte buf[
sizeof (LONGEST)];
327 enum bfd_endian byte_order)
329 gdb_byte buf[
sizeof (ULONGEST)];
338 gdb_byte *buf = (gdb_byte *) alloca (
type->
length ());
348 const bfd_byte *myaddr, ssize_t len)
361 const bfd_byte *data)
381 enum bfd_endian byte_order,
384 gdb_byte *buf = (gdb_byte *) alloca (len);
394 enum bfd_endian byte_order,
397 gdb_byte *buf = (gdb_byte *) alloca (len);
415 _(
"The current BFD target is \"%s\".\n"),
value);
438 const char *text,
const char *word)
440 static const char **bfd_targets;
442 if (bfd_targets == NULL)
446 bfd_targets = bfd_target_list ();
447 for (last = 0; bfd_targets[last] != NULL; ++last)
450 bfd_targets = XRESIZEVEC (
const char *, bfd_targets, last + 2);
451 bfd_targets[last] =
"auto";
452 bfd_targets[last + 1] = NULL;
472Use FILE as core dump for examining memory and registers.\n\
473Usage: core-file FILE\n\
474No arg means have no core file. This command has been superseded by the\n\
475`target core' and `detach' commands."), &
cmdlist);
482Set the current BFD target."), _(
"\
483Show the current BFD target."), _(
"\
484Use `set gnutarget auto' to specify automatic detection."),
492 if (getenv (
"GNUTARGET"))
void * xrealloc(void *ptr, size_t size)
struct gdbarch * target_gdbarch(void)
struct cmd_list_element * showlist
struct cmd_list_element * cmdlist
struct cmd_list_element * setlist
struct cmd_list_element * add_alias_cmd(const char *name, cmd_list_element *target, enum command_class theclass, int abbrev_flag, struct cmd_list_element **list)
struct cmd_list_element * add_cmd(const char *name, enum command_class theclass, const char *doc, struct cmd_list_element **list)
void set_cmd_completer(struct cmd_list_element *cmd, completer_ftype *completer)
set_show_commands add_setshow_string_noescape_cmd(const char *name, enum command_class theclass, std::string *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_func_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
void complete_on_enum(completion_tracker &tracker, const char *const *enumlist, const char *text, const char *word)
const char * remove_trailing_whitespace(const char *start, const char *s)
void filename_completer(struct cmd_list_element *ignore, completion_tracker &tracker, const char *text, const char *word)
void validate_files(void)
void write_memory(CORE_ADDR memaddr, const bfd_byte *myaddr, ssize_t len)
CORE_ADDR read_memory_typed_address(CORE_ADDR addr, struct type *type)
static void complete_set_gnutarget(struct cmd_list_element *cmd, completion_tracker &tracker, const char *text, const char *word)
void read_stack(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
static void show_gnutarget_string(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
ULONGEST read_memory_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
void reopen_exec_file(void)
static void set_gnutarget_command(const char *ignore, int from_tty, struct cmd_list_element *c)
static void read_memory_object(enum target_object object, CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
static void call_extra_exec_file_hooks(const char *filename)
void write_memory_unsigned_integer(CORE_ADDR addr, int len, enum bfd_endian byte_order, ULONGEST value)
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
void specify_exec_file_hook(void(*hook)(const char *))
const char * get_exec_file(int err)
int safe_read_memory_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order, LONGEST *return_value)
LONGEST read_memory_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
void write_memory_with_notification(CORE_ADDR memaddr, const bfd_byte *myaddr, ssize_t len)
int safe_read_memory_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order, ULONGEST *return_value)
ULONGEST read_code_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
hook_type deprecated_exec_file_display_hook
void read_code(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
static void notify_memory_changed(inferior *inf, CORE_ADDR addr, ssize_t len, const bfd_byte *data)
void write_memory_signed_integer(CORE_ADDR addr, int len, enum bfd_endian byte_order, LONGEST value)
static std::string gnutarget_string
void set_gnutarget(const char *newtarget)
static int exec_file_hook_count
LONGEST read_code_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
void memory_error(enum target_xfer_status err, CORE_ADDR memaddr)
static hook_type * exec_file_extra_hooks
void(* hook_type)(const char *)
std::string memory_error_message(enum target_xfer_status err, struct gdbarch *gdbarch, CORE_ADDR memaddr)
void core_file_command(const char *filename, int from_tty)
static void store_signed_integer(gdb_byte *addr, int len, enum bfd_endian byte_order, LONGEST val)
static void store_unsigned_integer(gdb_byte *addr, int len, enum bfd_endian byte_order, ULONGEST val)
CORE_ADDR extract_typed_address(const gdb_byte *buf, struct type *type)
static LONGEST extract_signed_integer(gdb::array_view< const gdb_byte > buf, enum bfd_endian byte_order)
static ULONGEST extract_unsigned_integer(gdb::array_view< const gdb_byte > buf, enum bfd_endian byte_order)
void exec_file_attach(const char *filename, int from_tty)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t err
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int status
struct inferior * current_inferior(void)
void interps_notify_memory_changed(inferior *inf, CORE_ADDR addr, ssize_t len, const bfd_byte *data)
observable< struct inferior *, CORE_ADDR, ssize_t, const bfd_byte * > memory_changed
struct program_space * current_program_space
gdb::unique_xmalloc_ptr< char > exec_filename
const char * target_xfer_status_to_string(enum target_xfer_status status)
int target_write_memory(CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
target_xfer_partial_ftype target_xfer_partial
@ TARGET_XFER_UNAVAILABLE
@ TARGET_OBJECT_STACK_MEMORY
@ TARGET_OBJECT_CODE_MEMORY
const char * paddress(struct gdbarch *gdbarch, CORE_ADDR addr)
void gdb_printf(struct ui_file *stream, const char *format,...)