75 (core_target->
to_detach) (core_target, filename, from_tty);
77 (core_target->
to_open) (filename, from_tty);
91 (*exec_file_extra_hooks[i]) (filename);
102 if (deprecated_exec_file_display_hook != NULL)
106 if (exec_file_hook_count == 0)
114 exec_file_hook_count = 1;
120 exec_file_hook_count++;
123 exec_file_hook_count *
sizeof (
hook_type));
124 exec_file_extra_hooks = new_array;
125 exec_file_extra_hooks[exec_file_hook_count - 1] = hook;
128 deprecated_exec_file_display_hook = hook;
144 filename = xstrdup (bfd_get_filename (
exec_bfd));
146 res = stat (filename, &st);
154 bfd_cache_close_all ();
167 if (!core_file_matches_executable_p (core_bfd,
exec_bfd))
168 warning (
_(
"core file may not match specified executable file."));
169 else if (bfd_get_mtime (
exec_bfd) > bfd_get_mtime (core_bfd))
170 warning (
_(
"exec file is newer than core file."));
186 error (
_(
"No executable file specified.\n\
187 Use the \"file\" or \"exec-file\" command."));
201 return xstrprintf (
_(
"Cannot access memory at address %s"),
204 return xstrprintf (
_(
"Memory at address %s unavailable."),
208 "unhandled target_xfer_status: %s (%s)",
255 myaddr + xfered, NULL,
256 memaddr + xfered, len - xfered,
263 xfered += xfered_len;
298 enum bfd_endian byte_order,
312 enum bfd_endian byte_order)
322 enum bfd_endian byte_order)
332 enum bfd_endian byte_order)
342 enum bfd_endian byte_order)
360 if (cp - buffer >= max_len)
362 buffer[max_len - 1] =
'\0';
365 cnt = max_len - (cp - buffer);
369 for (i = 0; i < cnt && *cp; i++, cp++)
390 const bfd_byte *myaddr, ssize_t
len)
413 enum bfd_endian byte_order,
426 enum bfd_endian byte_order,
447 _(
"The current BFD target is \"%s\".\n"), value);
457 char *gend = gnutarget_string + strlen (gnutarget_string);
462 if (strcmp (gnutarget_string,
"auto") == 0)
472 const char *text,
const char *
word)
474 static const char **bfd_targets;
476 if (bfd_targets == NULL)
480 bfd_targets = bfd_target_list ();
481 for (last = 0; bfd_targets[last] != NULL; ++last)
484 bfd_targets =
xrealloc (bfd_targets, (last + 2) *
sizeof (
const char **));
485 bfd_targets[last] =
"auto";
486 bfd_targets[last + 1] = NULL;
489 return complete_on_enum (bfd_targets, text, word);
496 if (gnutarget_string != NULL)
497 xfree (gnutarget_string);
498 gnutarget_string = xstrdup (newtarget);
508 Use FILE as core dump for examining memory and registers.\n\
509 No arg means have no core file. This command has been superseded by the\n\
510 `target core' and `detach' commands."), &
cmdlist);
515 &gnutarget_string,
_(
"\
516 Set the current BFD target."),
_(
"\
517 Show the current BFD target."),
_(
"\
518 Use `set gnutarget auto' to specify automatic detection."),
526 if (getenv (
"GNUTARGET"))
struct gdbarch * target_gdbarch(void)
ULONGEST extract_unsigned_integer(const gdb_byte *, int, enum bfd_endian)
void reopen_exec_file(void)
CORE_ADDR extract_typed_address(const gdb_byte *buf, struct type *type)
static void show_gnutarget_string(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
void read_memory_string(CORE_ADDR memaddr, char *buffer, int max_len)
int target_write_memory(CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
void store_signed_integer(gdb_byte *, int, enum bfd_endian, LONGEST)
void write_memory_unsigned_integer(CORE_ADDR addr, int len, enum bfd_endian byte_order, ULONGEST value)
void warning(const char *fmt,...)
char * plongest(LONGEST l)
hook_type deprecated_exec_file_display_hook
void internal_error(const char *file, int line, const char *fmt,...)
int safe_read_memory_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order, LONGEST *return_value)
static void call_extra_exec_file_hooks(const char *filename)
static void set_gnutarget_command(char *, int, struct cmd_list_element *)
char * memory_error_message(enum target_xfer_status err, struct gdbarch *gdbarch, CORE_ADDR memaddr)
struct cmd_list_element * cmdlist
void core_file_command(char *filename, int from_tty)
const char * target_xfer_status_to_string(enum target_xfer_status status)
void store_unsigned_integer(gdb_byte *, int, enum bfd_endian, ULONGEST)
const char * paddress(struct gdbarch *gdbarch, CORE_ADDR addr)
ULONGEST read_code_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
struct cmd_list_element * add_setshow_string_noescape_cmd(const char *name, enum command_class theclass, char **var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
int target_read_code(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
void memory_error(enum target_xfer_status err, CORE_ADDR memaddr)
struct cmd_list_element * setlist
static int exec_file_hook_count
LONGEST read_memory_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
struct target_ops current_target
void(* hook_type)(const char *)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t err
void set_cmd_completer(struct cmd_list_element *cmd, completer_ftype *completer)
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t int status
struct cmd_list_element * showlist
struct cmd_list_element * add_cmd(const char *name, enum command_class theclass, cmd_cfunc_ftype *fun, const char *doc, struct cmd_list_element **list)
void write_memory_signed_integer(CORE_ADDR addr, int len, enum bfd_endian byte_order, LONGEST value)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
static hook_type * exec_file_extra_hooks
void read_code(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
void specify_exec_file_hook(void(*hook)(const char *))
struct cmd_list_element * add_alias_cmd(const char *name, const char *oldname, enum command_class theclass, int abbrev_flag, struct cmd_list_element **list)
char * xstrprintf(const char *format,...)
void read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
char * remove_trailing_whitespace(const char *start, char *s)
void(* to_detach)(struct target_ops *ops, const char *, int) TARGET_DEFAULT_IGNORE()
LONGEST read_code_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
static char * gnutarget_string
struct target_ops * core_target
PTR xrealloc(PTR ptr, size_t size)
void exec_file_attach(const char *filename, int from_tty)
void set_gnutarget(char *newtarget)
int target_read_memory(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
void(* to_open)(const char *, int)
void validate_files(void)
void observer_notify_memory_changed(struct inferior *inferior, CORE_ADDR addr, ssize_t len, const bfd_byte *data)
struct inferior * current_inferior(void)
char * get_exec_file(int err)
unsigned long long ULONGEST
static int ignore(struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
target_xfer_partial_ftype target_xfer_partial
#define TYPE_LENGTH(thistype)
ULONGEST read_memory_unsigned_integer(CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
void _initialize_core(void)
CORE_ADDR read_memory_typed_address(CORE_ADDR addr, struct type *type)
void write_memory_with_notification(CORE_ADDR memaddr, const bfd_byte *myaddr, ssize_t len)
LONGEST extract_signed_integer(const gdb_byte *, int, enum bfd_endian)
void write_memory(CORE_ADDR memaddr, const bfd_byte *myaddr, ssize_t len)
int target_read_stack(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
void error(const char *fmt,...)
void read_stack(CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
void throw_error(enum errors error, const char *fmt,...)
struct target_ops * beneath
void do_cleanups(struct cleanup *old_chain)
const ULONGEST const LONGEST len