|
GDB (xrefs)
|
#include "defs.h"#include "gdb_bfd.h"#include "ui-out.h"#include "gdbcmd.h"#include "hashtab.h"#include "filestuff.h"#include "vec.h"#include <sys/mman.h>#include "target.h"#include "gdb/fileio.h"#include "inferior.h"Go to the source code of this file.
Classes | |
| struct | gdb_bfd_section_data |
| struct | gdb_bfd_data |
| struct | gdb_bfd_cache_search |
Macros | |
| #define | MAP_FAILED ((void *) -1) |
| #define | GDB_BFD_DATA_ACCESSOR(ABFD) ((struct gdb_bfd_data *) bfd_usrdata (ABFD)) |
Functions | |
| static void | show_bfd_sharing (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
| static void | show_bfd_cache_debug (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
| static hashval_t | hash_bfd (const void *b) |
| static int | eq_bfd (const void *a, const void *b) |
| int | is_target_filename (const char *name) |
| int | gdb_bfd_has_target_filename (struct bfd *abfd) |
| static int | fileio_errno_to_host (int errnum) |
| static void * | gdb_bfd_iovec_fileio_open (struct bfd *abfd, void *inferior) |
| static file_ptr | gdb_bfd_iovec_fileio_pread (struct bfd *abfd, void *stream, void *buf, file_ptr nbytes, file_ptr offset) |
| static int | gdb_bfd_iovec_fileio_close (struct bfd *abfd, void *stream) |
| static int | gdb_bfd_iovec_fileio_fstat (struct bfd *abfd, void *stream, struct stat *sb) |
| gdb_bfd_ref_ptr | gdb_bfd_open (const char *name, const char *target, int fd) |
| static void | free_one_bfd_section (bfd *abfd, asection *sectp, void *ignore) |
| static int | gdb_bfd_close_or_warn (struct bfd *abfd) |
| void | gdb_bfd_ref (struct bfd *abfd) |
| void | gdb_bfd_unref (struct bfd *abfd) |
| static struct gdb_bfd_section_data * | get_section_descriptor (asection *section) |
| const gdb_byte * | gdb_bfd_map_section (asection *sectp, bfd_size_type *size) |
| static int | get_file_crc (bfd *abfd, unsigned long *file_crc_return) |
| int | gdb_bfd_crc (struct bfd *abfd, unsigned long *crc_out) |
| gdb_bfd_ref_ptr | gdb_bfd_fopen (const char *filename, const char *target, const char *mode, int fd) |
| gdb_bfd_ref_ptr | gdb_bfd_openr (const char *filename, const char *target) |
| gdb_bfd_ref_ptr | gdb_bfd_openw (const char *filename, const char *target) |
| gdb_bfd_ref_ptr | gdb_bfd_openr_iovec (const char *filename, const char *target, void *(*open_func)(struct bfd *nbfd, void *open_closure), void *open_closure, file_ptr(*pread_func)(struct bfd *nbfd, void *stream, void *buf, file_ptr nbytes, file_ptr offset), int(*close_func)(struct bfd *nbfd, void *stream), int(*stat_func)(struct bfd *abfd, void *stream, struct stat *sb)) |
| void | gdb_bfd_mark_parent (bfd *child, bfd *parent) |
| gdb_bfd_ref_ptr | gdb_bfd_openr_next_archived_file (bfd *archive, bfd *previous) |
| void | gdb_bfd_record_inclusion (bfd *includer, bfd *includee) |
| gdb_bfd_ref_ptr | gdb_bfd_fdopenr (const char *filename, const char *target, int fd) |
| gdb_static_assert (ARRAY_SIZE(_bfd_std_section)==4) | |
| int | gdb_bfd_section_index (bfd *abfd, asection *section) |
| int | gdb_bfd_count_sections (bfd *abfd) |
| int | gdb_bfd_requires_relocations (bfd *abfd) |
| static int | print_one_bfd (void **slot, void *data) |
| static void | maintenance_info_bfds (const char *arg, int from_tty) |
| void | _initialize_gdb_bfd (void) |
Variables | |
| static htab_t | all_bfds |
| static htab_t | gdb_bfd_cache |
| static int | bfd_sharing = 1 |
| static unsigned int | debug_bfd_cache |
| #define GDB_BFD_DATA_ACCESSOR | ( | ABFD | ) | ((struct gdb_bfd_data *) bfd_usrdata (ABFD)) |
| #define MAP_FAILED ((void *) -1) |
Definition at line 30 of file gdb_bfd.c.
Referenced by gdb_bfd_map_section(), and linux_ptrace_test_ret_to_nx().
| void _initialize_gdb_bfd | ( | void | ) |
Definition at line 972 of file gdb_bfd.c.
References _, add_cmd(), add_setshow_boolean_cmd(), add_setshow_zuinteger_cmd(), all_bfds, bfd_sharing, class_maintenance, debug_bfd_cache, maintenance_info_bfds(), maintenance_set_cmdlist, maintenance_show_cmdlist, maintenanceinfolist, no_class, setdebuglist, show_bfd_cache_debug(), show_bfd_sharing(), showdebuglist, xcalloc(), and xfree().
|
static |
Definition at line 191 of file gdb_bfd.c.
References gdb_bfd_data::device_id, gdb_bfd_cache_search::device_id, gdb_bfd_cache_search::filename, gdb_bfd_data::inode, gdb_bfd_cache_search::inode, gdb_bfd_data::mtime, gdb_bfd_cache_search::mtime, gdb_bfd_data::size, and gdb_bfd_cache_search::size.
Referenced by gdb_bfd_open().
|
static |
Definition at line 225 of file gdb_bfd.c.
Referenced by gdb_bfd_iovec_fileio_fstat(), gdb_bfd_iovec_fileio_open(), and gdb_bfd_iovec_fileio_pread().
|
static |
Definition at line 480 of file gdb_bfd.c.
References gdb_bfd_section_data::data, gdb_assert, gdb_bfd_section_data::map_addr, gdb_bfd_section_data::map_len, and xfree().
Referenced by gdb_bfd_close_or_warn().
|
static |
Definition at line 504 of file gdb_bfd.c.
References _, free_one_bfd_section(), name, and warning().
Referenced by gdb_bfd_unref().
| int gdb_bfd_count_sections | ( | bfd * | abfd | ) |
Definition at line 906 of file gdb_bfd.c.
Referenced by build_objfile_section_table(), default_symfile_offsets(), objfile_relocate(), solib_target_relocate_section_addresses(), and syms_from_objfile_1().
| int gdb_bfd_crc | ( | struct bfd * | abfd, |
| unsigned long * | crc_out | ||
| ) |
Definition at line 756 of file gdb_bfd.c.
References gdb_bfd_data::crc, gdb_bfd_data::crc_computed, and get_file_crc().
Referenced by separate_debug_file_exists().
| gdb_bfd_ref_ptr gdb_bfd_fdopenr | ( | const char * | filename, |
| const char * | target, | ||
| int | fd | ||
| ) |
Definition at line 874 of file gdb_bfd.c.
References new_bfd_ref().
| gdb_bfd_ref_ptr gdb_bfd_fopen | ( | const char * | filename, |
| const char * | target, | ||
| const char * | mode, | ||
| int | fd | ||
| ) |
Definition at line 773 of file gdb_bfd.c.
References new_bfd_ref().
Referenced by core_open(), and exec_file_attach().
| int gdb_bfd_has_target_filename | ( | struct bfd * | abfd | ) |
Definition at line 216 of file gdb_bfd.c.
References is_target_filename().
Referenced by solib_bfd_fopen(), and symfile_bfd_open().
|
static |
Definition at line 344 of file gdb_bfd.c.
References target_fileio_close(), and xfree().
Referenced by gdb_bfd_open().
|
static |
Definition at line 363 of file gdb_bfd.c.
References fileio_errno_to_host(), and target_fileio_fstat().
Referenced by gdb_bfd_open().
|
static |
Definition at line 280 of file gdb_bfd.c.
References fileio_errno_to_host(), gdb_assert, is_target_filename(), target_fileio_open_warn_if_slow(), TARGET_SYSROOT_PREFIX, and XCNEW.
Referenced by gdb_bfd_open().
|
static |
Definition at line 309 of file gdb_bfd.c.
References fileio_errno_to_host(), offset, QUIT, and target_fileio_pread().
Referenced by gdb_bfd_open().
| const gdb_byte* gdb_bfd_map_section | ( | asection * | sectp, |
| bfd_size_type * | size | ||
| ) |
Definition at line 645 of file gdb_bfd.c.
References _, gdb_bfd_section_data::data, error(), gdb_assert, get_section_descriptor(), gdb_bfd_section_data::map_addr, MAP_FAILED, gdb_bfd_section_data::map_len, memset(), gdb_bfd_section_data::size, and size.
Referenced by dwarf2_read_section().
| void gdb_bfd_mark_parent | ( | bfd * | child, |
| bfd * | parent | ||
| ) |
Definition at line 829 of file gdb_bfd.c.
References gdb_bfd_data::archive_bfd, gdb_assert, and gdb_bfd_ref().
Referenced by gdb_bfd_mach_o_fat_extract(), and gdb_bfd_openr_next_archived_file().
| gdb_bfd_ref_ptr gdb_bfd_open | ( | const char * | name, |
| const char * | target, | ||
| int | fd | ||
| ) |
Definition at line 383 of file gdb_bfd.c.
References bfd_sharing, current_inferior(), debug_bfd_cache, gdb_bfd_cache_search::device_id, eq_bfd(), gdb_bfd_cache_search::filename, fprintf_unfiltered(), gdb_assert, gdb_bfd_cache, gdb_bfd_iovec_fileio_close(), gdb_bfd_iovec_fileio_fstat(), gdb_bfd_iovec_fileio_open(), gdb_bfd_iovec_fileio_pread(), gdb_bfd_openr_iovec(), gdb_open_cloexec(), gdb_stdlog, hash(), hash_bfd(), host_address_to_string, gdb_bfd_cache_search::inode, is_target_filename(), gdb_bfd_cache_search::mtime, name, new_bfd_ref(), O_BINARY, gdb_bfd_cache_search::size, target_filesystem_is_local, TARGET_SYSROOT_PREFIX, xcalloc(), and xfree().
Referenced by build_id_to_debug_bfd(), compile_object_load(), darwin_solib_get_all_image_info_addr_at_init(), dwarf2_get_dwz_file(), exec_file_attach(), generic_load(), macho_symfile_read_all_oso(), reread_symbols(), separate_debug_file_exists(), solib_bfd_fopen(), symfile_bfd_open(), try_open_dwop_file(), windows_make_so(), and windows_xfer_shared_library().
| gdb_bfd_ref_ptr gdb_bfd_openr | ( | const char * | filename, |
| const char * | target | ||
| ) |
Definition at line 784 of file gdb_bfd.c.
References new_bfd_ref().
Referenced by bfd_openr_or_error(), and macho_check_dsym().
| gdb_bfd_ref_ptr gdb_bfd_openr_iovec | ( | const char * | filename, |
| const char * | target, | ||
| void *(*)(struct bfd *nbfd, void *open_closure) | open_func, | ||
| void * | open_closure, | ||
| file_ptr(*)(struct bfd *nbfd, void *stream, void *buf, file_ptr nbytes, file_ptr offset) | pread_func, | ||
| int(*)(struct bfd *nbfd, void *stream) | close_func, | ||
| int(*)(struct bfd *abfd, void *stream, struct stat *sb) | stat_func | ||
| ) |
Definition at line 804 of file gdb_bfd.c.
References new_bfd_ref().
Referenced by bfd_open_from_target_memory(), find_separate_debug_file_in_section(), gdb_bfd_open(), spu_bfd_fopen(), and spu_bfd_open().
| gdb_bfd_ref_ptr gdb_bfd_openr_next_archived_file | ( | bfd * | archive, |
| bfd * | previous | ||
| ) |
Definition at line 850 of file gdb_bfd.c.
References gdb_bfd_mark_parent().
Referenced by macho_symfile_read_all_oso(), and solib_aix_bfd_open().
| gdb_bfd_ref_ptr gdb_bfd_openw | ( | const char * | filename, |
| const char * | target | ||
| ) |
Definition at line 794 of file gdb_bfd.c.
References new_bfd_ref().
Referenced by bfd_openw_or_error(), and create_gcore_bfd().
| void gdb_bfd_record_inclusion | ( | bfd * | includer, |
| bfd * | includee | ||
| ) |
Definition at line 863 of file gdb_bfd.c.
References gdb_bfd_data::included_bfds, and new_bfd_ref().
Referenced by dwarf2_get_dwz_file(), and try_open_dwop_file().
| void gdb_bfd_ref | ( | struct bfd * | abfd | ) |
Definition at line 523 of file gdb_bfd.c.
References all_bfds, debug_bfd_cache, fprintf_unfiltered(), gdb_assert, gdb_bfd_data::gdb_bfd_data(), gdb_stdlog, host_address_to_string, and gdb_bfd_data::refc.
Referenced by gdb_bfd_mach_o_fat_extract(), gdb_bfd_mark_parent(), gdb_bfd_ref_policy::incref(), new_bfd_ref(), objfile::objfile(), and target_bfd_reopen().
| int gdb_bfd_requires_relocations | ( | bfd * | abfd | ) |
Definition at line 914 of file gdb_bfd.c.
References gdb_bfd_data::needs_relocations, and gdb_bfd_data::relocation_computed.
Referenced by get_objfile_bfd_data().
| int gdb_bfd_section_index | ( | bfd * | abfd, |
| asection * | section | ||
| ) |
Definition at line 888 of file gdb_bfd.c.
Referenced by add_to_objfile_sections_full(), build_section_addr_info_from_bfd(), build_section_addr_info_from_section_table(), cs_to_section(), find_targ_sec(), init_entry_point_info(), macho_symtab_add_minsym(), place_section(), print_bfd_section_info(), record_minimal_symbol(), and solib_target_relocate_section_addresses().
| void gdb_bfd_unref | ( | struct bfd * | abfd | ) |
Definition at line 561 of file gdb_bfd.c.
References all_bfds, gdb_bfd_data::archive_bfd, debug_bfd_cache, gdb_bfd_data::device_id, gdb_bfd_cache_search::device_id, gdb_bfd_cache_search::filename, fprintf_unfiltered(), gdb_assert, gdb_bfd_cache, gdb_bfd_close_or_warn(), gdb_bfd_unref(), gdb_stdlog, hash(), host_address_to_string, gdb_bfd_data::inode, gdb_bfd_cache_search::inode, gdb_bfd_data::mtime, gdb_bfd_cache_search::mtime, gdb_bfd_data::refc, gdb_bfd_data::size, and gdb_bfd_cache_search::size.
Referenced by clear_so(), core_close(), gdb_bfd_ref_policy::decref(), dwarf2_per_objfile_free(), exec_close(), free_dwo_file(), gdb_bfd_unref(), target_bfd_xclose(), and objfile::~objfile().
| gdb_static_assert | ( | ARRAY_SIZE(_bfd_std_section) | = =4 | ) |
|
static |
|
static |
Definition at line 625 of file gdb_bfd.c.
Referenced by gdb_bfd_map_section().
|
static |
Definition at line 179 of file gdb_bfd.c.
Referenced by gdb_bfd_open().
| int is_target_filename | ( | const char * | name | ) |
Definition at line 208 of file gdb_bfd.c.
References name, startswith(), and TARGET_SYSROOT_PREFIX.
Referenced by exec_file_attach(), gdb_bfd_has_target_filename(), gdb_bfd_iovec_fileio_open(), gdb_bfd_open(), gdbsim_open(), load_auto_scripts_for_objfile(), objfile::objfile(), remote_follow_exec(), solib_find_1(), and symfile_bfd_open().
|
static |
Definition at line 958 of file gdb_bfd.c.
References all_bfds, current_uiout, print_one_bfd(), ui_out::table_body(), ui_out::table_header(), and ui_left.
Referenced by _initialize_gdb_bfd().
|
static |
Definition at line 940 of file gdb_bfd.c.
References ui_out::field_int(), ui_out::field_string(), host_address_to_string, gdb_bfd_data::refc, and ui_out::text().
Referenced by maintenance_info_bfds().
|
static |
Definition at line 152 of file gdb_bfd.c.
References _, and fprintf_filtered().
Referenced by _initialize_gdb_bfd().
|
static |
Definition at line 142 of file gdb_bfd.c.
References _, and fprintf_filtered().
Referenced by _initialize_gdb_bfd().
|
static |
Definition at line 57 of file gdb_bfd.c.
Referenced by _initialize_gdb_bfd(), gdb_bfd_ref(), gdb_bfd_unref(), and maintenance_info_bfds().
|
static |
Definition at line 140 of file gdb_bfd.c.
Referenced by _initialize_gdb_bfd(), and gdb_bfd_open().
|
static |
Definition at line 150 of file gdb_bfd.c.
Referenced by _initialize_gdb_bfd(), gdb_bfd_open(), gdb_bfd_ref(), and gdb_bfd_unref().
|
static |
Definition at line 135 of file gdb_bfd.c.
Referenced by gdb_bfd_open(), and gdb_bfd_unref().
1.8.14