GDB (xrefs)
|
#include "defs.h"
#include "elf/external.h"
#include "elf/common.h"
#include "elf/mips.h"
#include "symtab.h"
#include "bfd.h"
#include "symfile.h"
#include "objfiles.h"
#include "gdbcore.h"
#include "target.h"
#include "inferior.h"
#include "regcache.h"
#include "gdbthread.h"
#include "observer.h"
#include "gdb_assert.h"
#include "solist.h"
#include "solib.h"
#include "solib-svr4.h"
#include "bfd-target.h"
#include "elf-bfd.h"
#include "exec.h"
#include "auxv.h"
#include "exceptions.h"
#include "gdb_bfd.h"
#include "probe.h"
Go to the source code of this file.
#define NUM_PROBES ARRAY_SIZE (probe_info) |
Definition at line 158 of file solib-svr4.c.
Referenced by svr4_create_probe_breakpoints(), and svr4_create_solib_event_breakpoints().
enum probe_action |
Definition at line 113 of file solib-svr4.c.
void _initialize_svr4_solib | ( | void | ) |
Definition at line 3098 of file solib-svr4.c.
References target_so_ops::bfd_open, target_so_ops::clear_so, target_so_ops::clear_solib, target_so_ops::current_sos, elf_lookup_lib_symbol(), target_so_ops::free_so, gdbarch_data_register_pre_init(), target_so_ops::handle_event, target_so_ops::in_dynsym_resolve_code, target_so_ops::keep_data_in_core, target_so_ops::lookup_lib_global_symbol, target_so_ops::open_symbol_file_object, open_symbol_file_object(), target_so_ops::relocate_section_addresses, target_so_ops::same, solib_bfd_open(), target_so_ops::solib_create_inferior_hook, solib_svr4_init(), solib_svr4_pspace_data, target_so_ops::special_symbol_handling, svr4_clear_so(), svr4_clear_solib(), svr4_current_sos(), svr4_free_so(), svr4_handle_solib_event(), svr4_in_dynsym_resolve_code(), svr4_keep_data_in_core(), svr4_pspace_data_cleanup(), svr4_relocate_section_addresses(), svr4_same(), svr4_so_ops, svr4_solib_create_inferior_hook(), svr4_special_symbol_handling(), svr4_update_solib_event_breakpoints(), and target_so_ops::update_breakpoints.
static int cmp_name_and_sec_flags | ( | asymbol * | sym, |
void * | data | ||
) | [static] |
Definition at line 2056 of file solib-svr4.c.
Referenced by enable_break().
static void disable_probes_interface_cleanup | ( | void * | arg | ) | [static] |
Definition at line 1754 of file solib-svr4.c.
References _, free_probes_table(), free_solib_list(), get_svr4_info(), and warning().
Referenced by svr4_handle_solib_event().
static CORE_ADDR elf_locate_base | ( | void | ) | [static] |
Definition at line 792 of file solib-svr4.c.
References builtin_type::builtin_data_ptr, builtin_type(), exec_bfd, extract_typed_address(), lookup_minimal_symbol(), scan_dyntag(), scan_dyntag_auxv(), SYMBOL_VALUE_ADDRESS, symfile_objfile, target_gdbarch(), target_read_memory(), and TYPE_LENGTH.
Referenced by locate_base().
static struct symbol* elf_lookup_lib_symbol | ( | const struct objfile * | objfile, |
const char * | name, | ||
const domain_enum | domain | ||
) | [static, read] |
Definition at line 3073 of file solib-svr4.c.
References exec_bfd, gdb_assert, lookup_global_symbol_from_objfile(), objfile::obfd, scan_dyntag(), objfile::separate_debug_objfile_backlink, and symfile_objfile.
Referenced by _initialize_svr4_solib().
static int enable_break | ( | struct svr4_info * | info, |
int | from_tty | ||
) | [static] |
Definition at line 2094 of file solib-svr4.c.
References _, ANOFFSET, auto_solib_add, bkpt_names, cmp_name_and_sec_flags(), current_inferior(), current_target, svr4_info::debug_base, svr4_info::debug_loader_name, svr4_info::debug_loader_offset, svr4_info::debug_loader_offset_p, exec_entry_point(), find_pc_section(), find_program_interpreter(), gdb_assert, gdb_bfd_lookup_symbol(), gdb_bfd_unref(), gdbarch_addr_bit(), gdbarch_addr_bits_remove(), gdbarch_convert_from_func_ptr_addr(), get_thread_arch_regcache(), HOST_CHAR_BIT, inferior_ptid, interp_name(), svr4_info::interp_plt_sect_high, svr4_info::interp_plt_sect_low, svr4_info::interp_text_sect_high, svr4_info::interp_text_sect_low, lm_addr_check(), lookup_minimal_symbol(), master_so_list(), so_list::next, objfile::obfd, obj_section::objfile, regcache_read_pc(), RETURN_MASK_ALL, SECT_OFF_TEXT, objfile::section_offsets, so_list::so_original_name, solib_add(), solib_bfd_open(), solib_break_names, solib_svr4_r_brk(), solib_svr4_r_map(), svr4_create_solib_event_breakpoints(), svr4_same_1(), SYMBOL_VALUE_ADDRESS, symfile_objfile, target_auxv_search(), target_bfd_reopen(), target_close(), target_gdbarch(), TRY_CATCH, warning(), and xfree().
Referenced by svr4_solib_create_inferior_hook().
static int equal_probe_and_action | ( | const void * | p1, |
const void * | p2 | ||
) | [static] |
Definition at line 1594 of file solib-svr4.c.
References probe::address, and probe_and_action::probe.
Referenced by register_solib_event_probe().
static CORE_ADDR exec_entry_point | ( | struct bfd * | abfd, |
struct target_ops * | targ | ||
) | [static] |
Definition at line 1551 of file solib-svr4.c.
References gdbarch_addr_bits_remove(), gdbarch_convert_from_func_ptr_addr(), and target_gdbarch().
Referenced by enable_break().
static char* find_program_interpreter | ( | void | ) | [static] |
Definition at line 592 of file solib-svr4.c.
References exec_bfd, read_program_header(), and xmalloc().
Referenced by enable_break().
static void free_probes_table | ( | struct svr4_info * | info | ) | [static] |
Definition at line 389 of file solib-svr4.c.
References svr4_info::probes_table.
Referenced by disable_probes_interface_cleanup(), svr4_pspace_data_cleanup(), and svr4_solib_create_inferior_hook().
static void free_solib_list | ( | struct svr4_info * | info | ) | [static] |
Definition at line 401 of file solib-svr4.c.
References svr4_info::solib_list, and svr4_free_library_list().
Referenced by disable_probes_interface_cleanup(), solist_update_full(), svr4_pspace_data_cleanup(), and svr4_solib_create_inferior_hook().
static struct svr4_info* get_svr4_info | ( | void | ) | [static, read] |
Definition at line 426 of file solib-svr4.c.
References current_program_space, solib_svr4_pspace_data, and XZALLOC.
Referenced by disable_probes_interface_cleanup(), open_symbol_file_object(), register_solib_event_probe(), svr4_clear_solib(), svr4_current_sos(), svr4_default_sos(), svr4_fetch_objfile_link_map(), svr4_handle_solib_event(), svr4_in_dynsym_resolve_code(), svr4_keep_data_in_core(), svr4_read_so_list(), and svr4_solib_create_inferior_hook().
static int has_lm_dynamic_from_link_map | ( | void | ) | [static] |
Definition at line 235 of file solib-svr4.c.
References link_map_offsets::l_ld_offset, and svr4_fetch_link_map_offsets().
Referenced by lm_addr_check().
static hashval_t hash_probe_and_action | ( | const void * | p | ) | [static] |
Definition at line 1583 of file solib-svr4.c.
References probe::address, and probe_and_action::probe.
Referenced by register_solib_event_probe().
static CORE_ADDR lm_addr_check | ( | const struct so_list * | so, |
bfd * | abfd | ||
) | [static] |
Definition at line 243 of file solib-svr4.c.
References _, has_lm_dynamic_from_link_map(), info_verbose, lm_info::l_addr, lm_info::l_addr_inferior, lm_info::l_addr_p, lm_info::l_ld, so_list::lm_info, paddress(), printf_unfiltered(), so_list::so_name, target_gdbarch(), and warning().
Referenced by enable_break(), and svr4_relocate_section_addresses().
static struct lm_info* lm_info_read | ( | CORE_ADDR | lm_addr | ) | [static, read] |
Definition at line 195 of file solib-svr4.c.
References _, builtin_type::builtin_data_ptr, builtin_type(), do_cleanups(), extract_typed_address(), lm_info::l_addr_inferior, link_map_offsets::l_addr_offset, lm_info::l_ld, link_map_offsets::l_ld_offset, lm_info::l_name, link_map_offsets::l_name_offset, lm_info::l_next, link_map_offsets::l_next_offset, lm_info::l_prev, link_map_offsets::l_prev_offset, link_map_offsets::link_map_size, lm_info::lm_addr, lm_addr(), make_cleanup(), paddress(), svr4_fetch_link_map_offsets(), target_gdbarch(), target_read_memory(), warning(), xfree(), xmalloc(), and xzalloc().
Referenced by svr4_keep_data_in_core(), and svr4_read_so_list().
static CORE_ADDR locate_base | ( | struct svr4_info * | info | ) | [static] |
Definition at line 856 of file solib-svr4.c.
References svr4_info::debug_base, elf_locate_base(), and svr4_have_link_map_offsets().
Referenced by open_symbol_file_object(), svr4_current_sos_direct(), svr4_handle_solib_event(), and svr4_keep_data_in_core().
static int match_main | ( | const char * | soname | ) | [static] |
Definition at line 1518 of file solib-svr4.c.
References main_name_list.
Referenced by svr4_read_so_list().
static int open_symbol_file_object | ( | void * | from_ttyp | ) | [static] |
Definition at line 974 of file solib-svr4.c.
References _, builtin_type::builtin_data_ptr, builtin_type(), svr4_info::debug_base, do_cleanups(), extract_typed_address(), get_svr4_info(), link_map_offsets::l_name_offset, locate_base(), make_cleanup(), query(), read_memory(), safe_strerror(), SO_NAME_MAX_PATH_SIZE, solib_svr4_r_map(), svr4_fetch_link_map_offsets(), symbol_file_add_main(), symfile_objfile, target_gdbarch(), target_read_string(), TYPE_LENGTH, warning(), xfree(), and xmalloc().
Referenced by _initialize_svr4_solib().
static gdb_byte* read_program_header | ( | int | type, |
int * | p_sect_size, | ||
int * | p_arch_size | ||
) | [static] |
Definition at line 455 of file solib-svr4.c.
References current_target, extract_unsigned_integer(), gdbarch_byte_order(), target_auxv_search(), target_gdbarch(), target_read_memory(), xfree(), and xmalloc().
Referenced by find_program_interpreter(), scan_dyntag_auxv(), and svr4_exec_displacement().
static gdb_byte* read_program_headers_from_bfd | ( | bfd * | abfd, |
int * | phdrs_size | ||
) | [static] |
Definition at line 2395 of file solib-svr4.c.
References xfree(), and xmalloc().
Referenced by svr4_exec_displacement().
static void register_solib_event_probe | ( | struct probe * | probe, |
enum probe_action | action | ||
) | [static] |
Definition at line 1606 of file solib-svr4.c.
References probe_and_action::action, equal_probe_and_action(), gdb_assert, get_svr4_info(), hash_probe_and_action(), probe_and_action::probe, svr4_info::probes_table, xcalloc(), and xfree().
Referenced by svr4_create_probe_breakpoints().
static int scan_dyntag | ( | int | dyntag, |
bfd * | abfd, | ||
CORE_ADDR * | ptr | ||
) | [static] |
Definition at line 624 of file solib-svr4.c.
References target_section::addr, builtin_type::builtin_data_ptr, builtin_type(), current_target_sections, extract_typed_address(), sections_end, target_gdbarch(), target_read_memory(), and target_section::the_bfd_section.
Referenced by elf_locate_base(), and elf_lookup_lib_symbol().
static int scan_dyntag_auxv | ( | int | dyntag, |
CORE_ADDR * | ptr | ||
) | [static] |
Definition at line 724 of file solib-svr4.c.
References extract_unsigned_integer(), gdbarch_byte_order(), read_program_header(), target_gdbarch(), and xfree().
Referenced by elf_locate_base().
void set_solib_svr4_fetch_link_map_offsets | ( | struct gdbarch * | gdbarch, |
struct link_map_offsets *(*)(void) | flmo | ||
) |
Definition at line 2966 of file solib-svr4.c.
References solib_svr4_ops::fetch_link_map_offsets, gdbarch_data(), set_solib_ops(), and svr4_so_ops.
Referenced by aarch64_linux_init_abi(), alpha_linux_init_abi(), alphafbsd_init_abi(), alphanbsd_init_abi(), alphaobsd_init_abi(), am33_linux_init_osabi(), amd64_linux_init_abi(), amd64_sol2_init_abi(), amd64_x32_linux_init_abi(), amd64fbsd_init_abi(), amd64nbsd_init_abi(), amd64obsd_init_abi(), arm_linux_init_abi(), arm_netbsd_elf_init_abi(), armobsd_init_abi(), cris_linux_init_abi(), hppa_linux_init_abi(), hppabsd_init_abi(), i386_linux_init_abi(), i386_sol2_init_abi(), i386fbsd_init_abi(), i386gnu_init_abi(), i386nbsdelf_init_abi(), i386nto_init_abi(), i386obsd_elf_init_abi(), ia64_linux_init_abi(), m32r_linux_init_abi(), m68k_linux_init_abi(), m68kbsd_elf_init_abi(), microblaze_linux_init_abi(), mips64obsd_init_abi(), mips_linux_init_abi(), mipsnbsd_init_abi(), nios2_linux_init_abi(), ppc_linux_init_abi(), ppcfbsd_init_abi(), ppcnbsd_init_abi(), ppcobsd_init_abi(), s390_gdbarch_init(), sh_linux_init_abi(), shnbsd_init_abi(), sparc32_linux_init_abi(), sparc32_sol2_init_abi(), sparc32nbsd_elf_init_abi(), sparc64_linux_init_abi(), sparc64_sol2_init_abi(), sparc64fbsd_init_abi(), sparc64nbsd_init_abi(), sparc64obsd_init_abi(), tilegx_linux_init_abi(), vaxnbsd_elf_init_abi(), xtensa_gdbarch_init(), and xtensa_linux_init_abi().
static enum probe_action solib_event_probe_action | ( | struct probe_and_action * | pa | ) | [static] |
Definition at line 1654 of file solib-svr4.c.
References probe_and_action::action, DO_NOTHING, FULL_RELOAD, gdb_assert, get_probe_argument_count(), probe_and_action::probe, PROBES_INTERFACE_FAILED, and UPDATE_OR_RELOAD.
Referenced by svr4_handle_solib_event().
static struct probe_and_action* solib_event_probe_at | ( | struct svr4_info * | info, |
CORE_ADDR | address | ||
) | [static, read] |
Definition at line 1634 of file solib-svr4.c.
References probe::address, probe_and_action::probe, and svr4_info::probes_table.
Referenced by svr4_handle_solib_event(), and svr4_update_solib_event_breakpoint().
static void* solib_svr4_init | ( | struct obstack * | obstack | ) | [static] |
Definition at line 2953 of file solib-svr4.c.
References solib_svr4_ops::fetch_link_map_offsets, and OBSTACK_ZALLOC.
Referenced by _initialize_svr4_solib().
static CORE_ADDR solib_svr4_r_brk | ( | struct svr4_info * | info | ) | [static] |
Definition at line 897 of file solib-svr4.c.
References builtin_type::builtin_data_ptr, builtin_type(), svr4_info::debug_base, link_map_offsets::r_brk_offset, read_memory_typed_address(), svr4_fetch_link_map_offsets(), and target_gdbarch().
Referenced by enable_break().
static CORE_ADDR solib_svr4_r_ldsomap | ( | struct svr4_info * | info | ) | [static] |
Definition at line 910 of file solib-svr4.c.
References builtin_type::builtin_data_ptr, builtin_type(), svr4_info::debug_base, gdbarch_byte_order(), link_map_offsets::r_ldsomap_offset, link_map_offsets::r_version_offset, link_map_offsets::r_version_size, read_memory_typed_address(), read_memory_unsigned_integer(), svr4_fetch_link_map_offsets(), target_gdbarch(), ULONGEST, and version.
Referenced by svr4_current_sos_direct(), and svr4_keep_data_in_core().
static CORE_ADDR solib_svr4_r_map | ( | struct svr4_info * | info | ) | [static] |
Definition at line 878 of file solib-svr4.c.
References builtin_type::builtin_data_ptr, builtin_type(), svr4_info::debug_base, exception_print(), gdb_stderr, link_map_offsets::r_map_offset, read_memory_typed_address(), RETURN_MASK_ERROR, svr4_fetch_link_map_offsets(), target_gdbarch(), and TRY_CATCH.
Referenced by enable_break(), open_symbol_file_object(), and svr4_current_sos_direct().
static int solist_update_full | ( | struct svr4_info * | info | ) | [static] |
Definition at line 1684 of file solib-svr4.c.
References free_solib_list(), svr4_info::solib_list, and svr4_current_sos_direct().
Referenced by svr4_handle_solib_event().
static int solist_update_incremental | ( | struct svr4_info * | info, |
CORE_ADDR | lm | ||
) | [static] |
Definition at line 1698 of file solib-svr4.c.
References svr4_library_list::head, lm_info::lm_addr, so_list::lm_info, so_list::next, phex_nz(), svr4_info::solib_list, svr4_current_sos_via_xfer_libraries(), svr4_read_so_list(), target_augmented_libraries_svr4_read, svr4_info::using_xfer, and xsnprintf().
Referenced by svr4_handle_solib_event().
static void svr4_clear_so | ( | struct so_list * | so | ) | [static] |
Definition at line 1064 of file solib-svr4.c.
References lm_info::l_addr_p, and so_list::lm_info.
Referenced by _initialize_svr4_solib().
static void svr4_clear_solib | ( | void | ) | [static] |
Definition at line 2891 of file solib-svr4.c.
References svr4_info::debug_base, svr4_info::debug_loader_name, svr4_info::debug_loader_offset, svr4_info::debug_loader_offset_p, get_svr4_info(), and xfree().
Referenced by _initialize_svr4_solib().
static struct so_list* svr4_copy_library_list | ( | struct so_list * | src | ) | [static, read] |
Definition at line 1089 of file solib-svr4.c.
References so_list::lm_info, memcpy(), so_list::next, and xmalloc().
Referenced by svr4_current_sos().
static void svr4_create_probe_breakpoints | ( | struct gdbarch * | gdbarch, |
VEC(probe_p)** | probes | ||
) | [static] |
Definition at line 1939 of file solib-svr4.c.
References probe_info::action, probe_and_action::action, probe::address, create_solib_event_breakpoint(), NUM_PROBES, register_solib_event_probe(), svr4_update_solib_event_breakpoints(), and VEC_iterate.
Referenced by svr4_create_solib_event_breakpoints().
static void svr4_create_solib_event_breakpoints | ( | struct gdbarch * | gdbarch, |
CORE_ADDR | address | ||
) | [static] |
Definition at line 1975 of file solib-svr4.c.
References can_evaluate_probe_arguments(), create_solib_event_breakpoint(), find_pc_section(), memset(), probe_info::name, NUM_PROBES, obj_section::objfile, p, svr4_create_probe_breakpoints(), VEC, VEC_empty, VEC_free, VEC_index, and xsnprintf().
Referenced by enable_break().
static struct so_list* svr4_current_sos | ( | void | ) | [static, read] |
Definition at line 1474 of file solib-svr4.c.
References get_svr4_info(), svr4_info::solib_list, svr4_copy_library_list(), and svr4_current_sos_direct().
Referenced by _initialize_svr4_solib().
static struct so_list* svr4_current_sos_direct | ( | struct svr4_info * | info | ) | [static, read] |
Definition at line 1404 of file solib-svr4.c.
References svr4_info::debug_base, discard_cleanups(), exec_bfd, svr4_library_list::head, locate_base(), svr4_library_list::main_lm, svr4_info::main_lm_addr, make_cleanup(), solib_svr4_r_ldsomap(), solib_svr4_r_map(), svr4_current_sos_via_xfer_libraries(), svr4_default_sos(), svr4_free_library_list(), svr4_read_so_list(), and svr4_info::using_xfer.
Referenced by solist_update_full(), and svr4_current_sos().
static int svr4_current_sos_via_xfer_libraries | ( | struct svr4_library_list * | list, |
const char * | annex | ||
) | [static] |
Definition at line 1266 of file solib-svr4.c.
Referenced by solist_update_incremental(), and svr4_current_sos_direct().
static struct so_list* svr4_default_sos | ( | void | ) | [static, read] |
Definition at line 1278 of file solib-svr4.c.
References svr4_info::debug_loader_name, svr4_info::debug_loader_offset, svr4_info::debug_loader_offset_p, get_svr4_info(), SO_NAME_MAX_PATH_SIZE, xzalloc(), and XZALLOC.
Referenced by svr4_current_sos_direct().
static int svr4_exec_displacement | ( | CORE_ADDR * | displacementp | ) | [static] |
Definition at line 2461 of file solib-svr4.c.
References _, current_target, exec_bfd, extract_unsigned_integer(), gdbarch_byte_order(), info_verbose, memcmp(), paddress(), printf_unfiltered(), read_program_header(), read_program_headers_from_bfd(), store_unsigned_integer(), target_auxv_search(), target_gdbarch(), and xfree().
Referenced by svr4_relocate_main_executable().
static struct link_map_offsets * svr4_fetch_link_map_offsets | ( | void | ) | [static, read] |
Definition at line 2980 of file solib-svr4.c.
References solib_svr4_ops::fetch_link_map_offsets, gdb_assert, gdbarch_data(), and target_gdbarch().
Referenced by has_lm_dynamic_from_link_map(), lm_info_read(), open_symbol_file_object(), solib_svr4_r_brk(), solib_svr4_r_ldsomap(), and solib_svr4_r_map().
CORE_ADDR svr4_fetch_objfile_link_map | ( | struct objfile * | objfile | ) |
Definition at line 1490 of file solib-svr4.c.
References auto_solib_add, current_target, get_svr4_info(), lm_info::lm_addr, so_list::lm_info, svr4_info::main_lm_addr, master_so_list(), so_list::next, so_list::objfile, solib_add(), and symfile_objfile.
Referenced by aarch64_linux_init_abi(), alpha_linux_init_abi(), amd64_linux_init_abi_common(), arm_linux_init_abi(), cris_linux_init_abi(), hppa_linux_init_abi(), i386_linux_init_abi(), ia64_linux_init_abi(), m32r_linux_init_abi(), m68k_linux_init_abi(), mips_linux_init_abi(), nios2_linux_init_abi(), ppc_linux_init_abi(), ppc_linux_spe_context_lookup(), ppcfbsd_init_abi(), s390_gdbarch_init(), sh_linux_init_abi(), sparc32_linux_init_abi(), sparc64_linux_init_abi(), and tilegx_linux_init_abi().
static void svr4_free_library_list | ( | void * | p_list | ) | [static] |
Definition at line 1073 of file solib-svr4.c.
References free_so(), and so_list::next.
Referenced by free_solib_list(), and svr4_current_sos_direct().
static void svr4_free_so | ( | struct so_list * | so | ) | [static] |
Definition at line 1056 of file solib-svr4.c.
References so_list::lm_info, and xfree().
Referenced by _initialize_svr4_solib().
static void svr4_handle_solib_event | ( | void | ) | [static] |
Definition at line 1770 of file solib-svr4.c.
References probe_and_action::action, current_program_space, debug_base, svr4_info::debug_base, disable_probes_interface_cleanup(), discard_cleanups(), do_cleanups(), DO_NOTHING, evaluate_probe_argument(), FULL_RELOAD, get_current_regcache(), get_svr4_info(), inhibit_section_map_updates(), locate_base(), make_cleanup(), probe_and_action::probe, PROBES_INTERFACE_FAILED, svr4_info::probes_table, regcache_read_pc(), resume_section_map_updates_cleanup(), solib_event_probe_action(), solib_event_probe_at(), solist_update_full(), solist_update_incremental(), UPDATE_OR_RELOAD, and value_as_address().
Referenced by _initialize_svr4_solib().
static int svr4_have_link_map_offsets | ( | void | ) | [static] |
Definition at line 2991 of file solib-svr4.c.
References solib_svr4_ops::fetch_link_map_offsets, gdbarch_data(), and target_gdbarch().
Referenced by locate_base(), and svr4_solib_create_inferior_hook().
struct link_map_offsets* svr4_ilp32_fetch_link_map_offsets | ( | void | ) | [read] |
Definition at line 3007 of file solib-svr4.c.
References link_map_offsets::l_addr_offset, link_map_offsets::l_ld_offset, link_map_offsets::l_name_offset, link_map_offsets::l_next_offset, link_map_offsets::l_prev_offset, link_map_offsets::link_map_size, link_map_offsets::r_brk_offset, link_map_offsets::r_ldsomap_offset, link_map_offsets::r_map_offset, link_map_offsets::r_version_offset, and link_map_offsets::r_version_size.
Referenced by am33_linux_init_osabi(), amd64_x32_linux_init_abi(), arm_linux_init_abi(), arm_netbsd_elf_init_abi(), armobsd_init_abi(), cris_linux_init_abi(), hppa_linux_init_abi(), hppabsd_init_abi(), i386_linux_init_abi(), i386_sol2_init_abi(), i386fbsd_init_abi(), i386gnu_init_abi(), i386nbsdelf_init_abi(), i386nto_init_abi(), i386obsd_elf_init_abi(), init_i386nto_ops(), m32r_linux_init_abi(), m68k_linux_init_abi(), m68kbsd_elf_init_abi(), microblaze_linux_init_abi(), mips_linux_init_abi(), nbsd_ilp32_solib_svr4_fetch_link_map_offsets(), nios2_linux_init_abi(), ppc_linux_init_abi(), ppcfbsd_init_abi(), ppcnbsd_init_abi(), ppcobsd_init_abi(), s390_gdbarch_init(), sh_linux_init_abi(), shnbsd_init_abi(), sparc32_linux_init_abi(), sparc32_sol2_init_abi(), sparc32nbsd_elf_init_abi(), tilegx_linux_init_abi(), vaxnbsd_elf_init_abi(), xtensa_gdbarch_init(), and xtensa_linux_init_abi().
Definition at line 1535 of file solib-svr4.c.
References get_svr4_info(), in_gnu_ifunc_stub(), in_plt_section(), interp_plt_sect_high, svr4_info::interp_plt_sect_low, interp_text_sect_high, and svr4_info::interp_text_sect_low.
Referenced by _initialize_svr4_solib(), mips_linux_in_dynsym_resolve_code(), and powerpc_linux_in_dynsym_resolve_code().
static int svr4_keep_data_in_core | ( | CORE_ADDR | vaddr, |
unsigned long | size | ||
) | [static] |
Definition at line 937 of file solib-svr4.c.
References svr4_info::debug_base, do_cleanups(), get_svr4_info(), lm_info_read(), locate_base(), make_cleanup(), solib_svr4_r_ldsomap(), xfree(), and XZALLOC.
Referenced by _initialize_svr4_solib().
struct link_map_offsets* svr4_lp64_fetch_link_map_offsets | ( | void | ) | [read] |
Definition at line 3038 of file solib-svr4.c.
References link_map_offsets::l_addr_offset, link_map_offsets::l_ld_offset, link_map_offsets::l_name_offset, link_map_offsets::l_next_offset, link_map_offsets::l_prev_offset, link_map_offsets::link_map_size, link_map_offsets::r_brk_offset, link_map_offsets::r_ldsomap_offset, link_map_offsets::r_map_offset, link_map_offsets::r_version_offset, and link_map_offsets::r_version_size.
Referenced by aarch64_linux_init_abi(), alpha_linux_init_abi(), alphafbsd_init_abi(), alphanbsd_init_abi(), alphaobsd_init_abi(), amd64_linux_init_abi(), amd64_sol2_init_abi(), amd64fbsd_init_abi(), amd64nbsd_init_abi(), amd64obsd_init_abi(), ia64_linux_init_abi(), mips64obsd_init_abi(), mips_linux_init_abi(), nbsd_lp64_solib_svr4_fetch_link_map_offsets(), ppc_linux_init_abi(), ppcfbsd_init_abi(), s390_gdbarch_init(), sparc64_linux_init_abi(), sparc64_sol2_init_abi(), sparc64fbsd_init_abi(), sparc64nbsd_init_abi(), sparc64obsd_init_abi(), and tilegx_linux_init_abi().
static void svr4_pspace_data_cleanup | ( | struct program_space * | pspace, |
void * | arg | ||
) | [static] |
Definition at line 408 of file solib-svr4.c.
References free_probes_table(), free_solib_list(), solib_svr4_pspace_data, and xfree().
Referenced by _initialize_svr4_solib().
static int svr4_read_so_list | ( | CORE_ADDR | lm, |
CORE_ADDR | prev_lm, | ||
struct so_list *** | link_ptr_ptr, | ||
int | ignore_first | ||
) | [static] |
Definition at line 1310 of file solib-svr4.c.
References _, discard_cleanups(), do_cleanups(), get_svr4_info(), lm_info::l_name, so_list::lm_info, lm_info_read(), svr4_info::main_lm_addr, make_cleanup_free_so(), match_main(), so_list::next, paddress(), safe_strerror(), SO_NAME_MAX_PATH_SIZE, target_gdbarch(), target_read_string(), warning(), xfree(), and XZALLOC.
Referenced by solist_update_incremental(), and svr4_current_sos_direct().
static void svr4_relocate_main_executable | ( | void | ) | [static] |
Definition at line 2785 of file solib-svr4.c.
References exec_bfd, exec_set_section_address(), objfile_relocate(), section_offsets::offsets, svr4_exec_displacement(), and symfile_objfile.
Referenced by svr4_solib_create_inferior_hook().
static void svr4_relocate_section_addresses | ( | struct so_list * | so, |
struct target_section * | sec | ||
) | [static] |
Definition at line 2929 of file solib-svr4.c.
References target_section::addr, target_section::endaddr, lm_addr_check(), svr4_truncate_ptr(), and target_section::the_bfd_section.
Referenced by _initialize_svr4_solib().
Definition at line 189 of file solib-svr4.c.
References so_list::so_original_name, and svr4_same_1().
Referenced by _initialize_svr4_solib().
static int svr4_same_1 | ( | const char * | gdb_so_name, |
const char * | inferior_so_name | ||
) | [static] |
Definition at line 164 of file solib-svr4.c.
Referenced by enable_break(), and svr4_same().
static void svr4_solib_create_inferior_hook | ( | int | from_tty | ) | [static] |
Definition at line 2865 of file solib-svr4.c.
References enable_break(), free_probes_table(), free_solib_list(), get_svr4_info(), svr4_have_link_map_offsets(), svr4_relocate_main_executable(), and target_has_execution.
Referenced by _initialize_svr4_solib().
static void svr4_special_symbol_handling | ( | void | ) | [static] |
Definition at line 2386 of file solib-svr4.c.
Referenced by _initialize_svr4_solib().
static CORE_ADDR svr4_truncate_ptr | ( | CORE_ADDR | addr | ) | [static] |
Definition at line 2917 of file solib-svr4.c.
References gdbarch_ptr_bit(), and target_gdbarch().
Referenced by svr4_relocate_section_addresses().
static int svr4_update_solib_event_breakpoint | ( | struct breakpoint * | b, |
void * | arg | ||
) | [static] |
Definition at line 1886 of file solib-svr4.c.
References probe_and_action::action, bp_location::address, bp_disabled, bp_enabled, bp_shlib_event, disable_breakpoint(), DO_NOTHING, enable_breakpoint(), breakpoint::enable_state, breakpoint::loc, bp_location::next, svr4_info::probes_table, bp_location::pspace, solib_event_probe_at(), solib_svr4_pspace_data, stop_on_solib_events, and breakpoint::type.
Referenced by svr4_update_solib_event_breakpoints().
static void svr4_update_solib_event_breakpoints | ( | void | ) | [static] |
Definition at line 1928 of file solib-svr4.c.
References iterate_over_breakpoints(), and svr4_update_solib_event_breakpoint().
Referenced by _initialize_svr4_solib(), and svr4_create_probe_breakpoints().
Referenced by initialize_all_files().
const char* const bkpt_names[] [static] |
{ "_start", "__start", "main", NULL }
Definition at line 97 of file solib-svr4.c.
Referenced by enable_break().
const char* const main_name_list[] [static] |
{
"main_$main",
NULL
}
Definition at line 105 of file solib-svr4.c.
Referenced by match_main().
struct probe_info probe_info[] [static] |
{ { "init_start", DO_NOTHING }, { "init_complete", FULL_RELOAD }, { "map_start", DO_NOTHING }, { "map_failed", DO_NOTHING }, { "reloc_complete", UPDATE_OR_RELOAD }, { "unmap_start", DO_NOTHING }, { "unmap_complete", FULL_RELOAD }, }
Definition at line 147 of file solib-svr4.c.
const char* const solib_break_names[] [static] |
{ "r_debug_state", "_r_debug_state", "_dl_debug_state", "rtld_db_dlactivity", "__dl_rtld_db_dlactivity", "_rtld_debug_state", NULL }
Definition at line 85 of file solib-svr4.c.
Referenced by enable_break().
struct gdbarch_data* solib_svr4_data [static] |
Definition at line 2942 of file solib-svr4.c.
struct program_space_data* solib_svr4_pspace_data [static] |
Definition at line 384 of file solib-svr4.c.
Referenced by _initialize_svr4_solib(), get_svr4_info(), svr4_pspace_data_cleanup(), and svr4_update_solib_event_breakpoint().
struct target_so_ops svr4_so_ops |
Definition at line 3066 of file solib-svr4.c.
Referenced by _initialize_svr4_solib(), i386nto_init_abi(), mips_linux_init_abi(), ppc_linux_init_abi(), set_solib_svr4_fetch_link_map_offsets(), set_spu_solib_ops(), spu_bfd_open(), spu_current_sos(), spu_free_so(), spu_lookup_lib_symbol(), spu_relocate_section_addresses(), and spu_solib_create_inferior_hook().