GDB (xrefs)
|
#include "defs.h"
#include "gdb_bfd.h"
#include "gdb_assert.h"
#include "gdb_string.h"
#include "ui-out.h"
#include "gdbcmd.h"
#include "hashtab.h"
#include "filestuff.h"
Go to the source code of this file.
Classes | |
struct | gdb_bfd_section_data |
struct | gdb_bfd_data |
struct | gdb_bfd_cache_search |
Defines | |
#define | GDB_BFD_DATA_ACCESSOR(ABFD) ((struct gdb_bfd_data *) bfd_usrdata (ABFD)) |
Functions | |
void | gdb_bfd_stash_filename (struct bfd *abfd) |
static hashval_t | hash_bfd (const void *b) |
static int | eq_bfd (const void *a, const void *b) |
struct bfd * | 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) |
bfd * | gdb_bfd_fopen (const char *filename, const char *target, const char *mode, int fd) |
bfd * | gdb_bfd_openr (const char *filename, const char *target) |
bfd * | gdb_bfd_openw (const char *filename, const char *target) |
bfd * | 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) |
bfd * | gdb_bfd_openr_next_archived_file (bfd *archive, bfd *previous) |
bfd * | 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 (char *arg, int from_tty) |
void | _initialize_gdb_bfd (void) |
Variables | |
static htab_t | all_bfds |
static htab_t | gdb_bfd_cache |
initialize_file_ftype | _initialize_gdb_bfd |
#define GDB_BFD_DATA_ACCESSOR | ( | ABFD | ) | ((struct gdb_bfd_data *) bfd_usrdata (ABFD)) |
void _initialize_gdb_bfd | ( | void | ) |
Definition at line 713 of file gdb_bfd.c.
References _, add_cmd(), all_bfds, class_maintenance, maintenance_info_bfds(), maintenanceinfolist, xcalloc(), and xfree().
Definition at line 142 of file gdb_bfd.c.
References gdb_bfd_cache_search::filename, gdb_bfd_data::mtime, and gdb_bfd_cache_search::mtime.
Referenced by gdb_bfd_open().
static void free_one_bfd_section | ( | bfd * | abfd, |
asection * | sectp, | ||
void * | ignore | ||
) | [static] |
Definition at line 216 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 int gdb_bfd_close_or_warn | ( | struct bfd * | abfd | ) | [static] |
Definition at line 239 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 639 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 470 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().
bfd* gdb_bfd_fdopenr | ( | const char * | filename, |
const char * | target, | ||
int | fd | ||
) |
Definition at line 601 of file gdb_bfd.c.
References gdb_bfd_ref(), and gdb_bfd_stash_filename().
bfd* gdb_bfd_fopen | ( | const char * | filename, |
const char * | target, | ||
const char * | mode, | ||
int | fd | ||
) |
Definition at line 487 of file gdb_bfd.c.
References gdb_bfd_ref(), and gdb_bfd_stash_filename().
Referenced by core_open(), and exec_file_attach().
const gdb_byte* gdb_bfd_map_section | ( | asection * | sectp, |
bfd_size_type * | size | ||
) |
Definition at line 359 of file gdb_bfd.c.
References _, gdb_bfd_section_data::data, error(), gdb_assert, get_section_descriptor(), gdb_bfd_section_data::map_addr, gdb_bfd_section_data::map_len, memset(), and gdb_bfd_section_data::size.
Referenced by dwarf2_read_section().
void gdb_bfd_mark_parent | ( | bfd * | child, |
bfd * | parent | ||
) |
Definition at line 567 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().
struct bfd* gdb_bfd_open | ( | const char * | name, |
const char * | target, | ||
int | fd | ||
) | [read] |
Definition at line 155 of file gdb_bfd.c.
References eq_bfd(), gdb_bfd_cache_search::filename, gdb_assert, gdb_bfd_cache, gdb_bfd_ref(), gdb_bfd_stash_filename(), gdb_open_cloexec(), hash(), hash_bfd(), gdb_bfd_cache_search::mtime, name, xcalloc(), and xfree().
Referenced by darwin_solib_get_all_image_info_addr_at_init(), dwarf2_get_dwz_file(), exec_file_attach(), gdb_bfd_open_maybe_remote(), generic_load(), load_srec(), m32r_load(), m32r_upload_command(), macho_symfile_read_all_oso(), solib_aix_bfd_open(), solib_bfd_fopen(), symfile_bfd_open(), try_open_dwop_file(), and windows_make_so().
bfd* gdb_bfd_openr | ( | const char * | filename, |
const char * | target | ||
) |
Definition at line 504 of file gdb_bfd.c.
References gdb_bfd_ref(), and gdb_bfd_stash_filename().
Referenced by bfd_openr_with_cleanup(), and macho_check_dsym().
bfd* 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 536 of file gdb_bfd.c.
References gdb_bfd_ref(), and gdb_bfd_stash_filename().
Referenced by bfd_open_from_target_memory(), find_separate_debug_file_in_section(), remote_bfd_open(), spu_bfd_fopen(), and spu_bfd_open().
bfd* gdb_bfd_openr_next_archived_file | ( | bfd * | archive, |
bfd * | previous | ||
) |
Definition at line 588 of file gdb_bfd.c.
References gdb_bfd_mark_parent().
Referenced by macho_symfile_read_all_oso(), and solib_aix_bfd_open().
bfd* gdb_bfd_openw | ( | const char * | filename, |
const char * | target | ||
) |
Definition at line 520 of file gdb_bfd.c.
References gdb_bfd_ref(), and gdb_bfd_stash_filename().
Referenced by bfd_openw_with_cleanup(), and create_gcore_bfd().
void gdb_bfd_ref | ( | struct bfd * | abfd | ) |
Definition at line 258 of file gdb_bfd.c.
References all_bfds, gdb_bfd_data::archive_bfd, gdb_assert, gdb_bfd_data::mtime, and gdb_bfd_data::refc.
Referenced by allocate_objfile(), gdb_bfd_fdopenr(), gdb_bfd_fopen(), gdb_bfd_mach_o_fat_extract(), gdb_bfd_mark_parent(), gdb_bfd_open(), gdb_bfd_openr(), gdb_bfd_openr_iovec(), gdb_bfd_openw(), symbol_file_add_from_memory(), and target_bfd_reopen().
int gdb_bfd_requires_relocations | ( | bfd * | abfd | ) |
Definition at line 647 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 621 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(), elf_symtab_read(), find_targ_sec(), macho_symtab_add_minsym(), objfile_relocate1(), place_section(), print_bfd_section_info(), record_minimal_symbol(), solib_target_relocate_section_addresses(), and som_symtab_read().
void gdb_bfd_stash_filename | ( | struct bfd * | abfd | ) |
Definition at line 63 of file gdb_bfd.c.
References name.
Referenced by gdb_bfd_fdopenr(), gdb_bfd_fopen(), gdb_bfd_open(), gdb_bfd_openr(), gdb_bfd_openr_iovec(), gdb_bfd_openw(), and symbol_file_add_from_memory().
void gdb_bfd_unref | ( | struct bfd * | abfd | ) |
Definition at line 294 of file gdb_bfd.c.
References all_bfds, gdb_bfd_data::archive_bfd, gdb_bfd_cache_search::filename, gdb_assert, gdb_bfd_cache, gdb_bfd_close_or_warn(), gdb_bfd_unref(), hash(), gdb_bfd_data::mtime, gdb_bfd_cache_search::mtime, and gdb_bfd_data::refc.
Referenced by build_id_to_debug_bfd(), clear_so(), core_close(), darwin_bfd_open(), do_bfd_close_cleanup(), do_bfd_delete_cleanup(), dwarf2_get_dwz_file(), dwarf2_per_objfile_free(), enable_break(), enable_break2(), exec_close(), find_separate_debug_file_by_buildid(), find_separate_debug_file_in_section(), free_dwo_file(), free_objfile(), gcore_command(), gdb_bfd_unref(), jit_bfd_try_read_symtab(), macho_add_oso_symfile(), macho_check_dsym(), macho_symfile_read_all_oso(), record_full_save(), record_full_save_cleanups(), reload_shared_libraries_1(), reread_symbols(), separate_debug_file_exists(), solib_aix_bfd_open(), spu_bfd_fopen(), spu_bfd_open(), target_bfd_xclose(), try_open_dwop_file(), windows_make_so(), and windows_xfer_shared_library().
gdb_static_assert | ( | ARRAY_SIZE(_bfd_std_section) | = =4 | ) |
static int get_file_crc | ( | bfd * | abfd, |
unsigned long * | file_crc_return | ||
) | [static] |
static struct gdb_bfd_section_data* get_section_descriptor | ( | asection * | section | ) | [static, read] |
Definition at line 341 of file gdb_bfd.c.
Referenced by gdb_bfd_map_section().
Definition at line 130 of file gdb_bfd.c.
Referenced by gdb_bfd_open().
static void maintenance_info_bfds | ( | char * | arg, |
int | from_tty | ||
) | [static] |
Definition at line 693 of file gdb_bfd.c.
References all_bfds, current_uiout, do_cleanups(), make_cleanup_ui_out_table_begin_end(), print_one_bfd(), ui_left, ui_out_table_body(), and ui_out_table_header().
Referenced by _initialize_gdb_bfd().
static int print_one_bfd | ( | void ** | slot, |
void * | data | ||
) | [static] |
Definition at line 673 of file gdb_bfd.c.
References ui_out::data, do_cleanups(), host_address_to_string(), make_cleanup_ui_out_tuple_begin_end(), gdb_bfd_data::refc, ui_out_field_int(), ui_out_field_string(), and ui_out_text().
Referenced by maintenance_info_bfds().
Referenced by initialize_all_files().
htab_t all_bfds [static] |
Definition at line 58 of file gdb_bfd.c.
Referenced by _initialize_gdb_bfd(), gdb_bfd_ref(), gdb_bfd_unref(), and maintenance_info_bfds().
htab_t gdb_bfd_cache [static] |
Definition at line 113 of file gdb_bfd.c.
Referenced by gdb_bfd_open(), and gdb_bfd_unref().