GDB (xrefs)
|
#include "defs.h"
#include <ctype.h>
#include "symtab.h"
#include "bfd.h"
#include "filenames.h"
#include "symfile.h"
#include "objfiles.h"
#include "demangle.h"
#include "value.h"
#include "cp-abi.h"
#include "target.h"
#include "cp-support.h"
#include "language.h"
#include "cli/cli-utils.h"
#include "symbol.h"
Go to the source code of this file.
Classes | |
struct | msym_bunch |
Macros | |
#define | BUNCH_SIZE 127 |
Variables | |
static struct msym_bunch * | msym_bunch |
static int | msym_bunch_index |
static int | msym_count |
static const struct gnu_ifunc_fns | stub_gnu_ifunc_fns |
const struct gnu_ifunc_fns * | gnu_ifunc_fns_p = &stub_gnu_ifunc_fns |
#define BUNCH_SIZE 127 |
Definition at line 59 of file minsyms.c.
Referenced by init_minimal_symbol_collection(), install_minimal_symbols(), and prim_record_minimal_symbol_full().
|
static |
Definition at line 129 of file minsyms.c.
References minimal_symbol::demangled_hash_next, hash(), MINIMAL_SYMBOL_HASH_SIZE, msymbol_hash_iw(), and MSYMBOL_SEARCH_NAME.
Referenced by build_minimal_symbol_hash_tables().
|
static |
Definition at line 113 of file minsyms.c.
References hash(), minimal_symbol::hash_next, MINIMAL_SYMBOL_HASH_SIZE, msymbol_hash(), and MSYMBOL_LINKAGE_NAME.
Referenced by build_minimal_symbol_hash_tables().
|
static |
Definition at line 1196 of file minsyms.c.
References add_minsym_to_demangled_hash_table(), add_minsym_to_hash_table(), minimal_symbol::demangled_hash_next, minimal_symbol::hash_next, objfile_per_bfd_storage::minimal_symbol_count, MINIMAL_SYMBOL_HASH_SIZE, objfile_per_bfd_storage::msymbol_demangled_hash, objfile_per_bfd_storage::msymbol_hash, MSYMBOL_LINKAGE_NAME, MSYMBOL_SEARCH_NAME, objfile_per_bfd_storage::msymbols, and objfile::per_bfd.
Referenced by install_minimal_symbols().
|
static |
Definition at line 1159 of file minsyms.c.
References mst_unknown, MSYMBOL_LINKAGE_NAME, MSYMBOL_SECTION, MSYMBOL_TYPE, and MSYMBOL_VALUE_RAW_ADDRESS.
Referenced by install_minimal_symbols().
Definition at line 1058 of file minsyms.c.
References MSYMBOL_LINKAGE_NAME, and MSYMBOL_VALUE_RAW_ADDRESS.
Referenced by install_minimal_symbols().
|
static |
Definition at line 1100 of file minsyms.c.
References msym_bunch::next, and xfree().
Referenced by make_cleanup_discard_minimal_symbols().
Definition at line 343 of file minsyms.c.
References BMSYMBOL_VALUE_ADDRESS, lookup_minimal_symbol(), and bound_minimal_symbol::minsym.
Referenced by agent_look_up_symbols().
CORE_ADDR find_solib_trampoline_target | ( | struct frame_info * | frame, |
CORE_ADDR | pc | ||
) |
Definition at line 1394 of file minsyms.c.
References ALL_MSYMBOLS, current_target, func, gdbarch_convert_from_func_ptr_addr(), get_objfile_arch(), lookup_solib_trampoline_symbol_by_pc(), mst_data, mst_text, mst_text_gnu_ifunc, MSYMBOL_LINKAGE_NAME, MSYMBOL_TYPE, and MSYMBOL_VALUE_ADDRESS.
Referenced by aarch64_linux_init_abi(), alpha_gdbarch_init(), alpha_linux_init_abi(), amd64_linux_init_abi_common(), arm_linux_skip_trampoline_code(), i386_linux_init_abi(), i386_svr4_init_abi(), ia64_linux_init_abi(), m32r_linux_init_abi(), m68k_linux_init_abi(), mips_skip_trampoline_code(), nios2_linux_init_abi(), obsd_skip_solib_resolver(), ppc64_skip_trampoline_code(), ppcfbsd_init_abi(), rs6000_skip_trampoline_code(), s390_gdbarch_init(), sh_linux_init_abi(), sparc32_linux_init_abi(), sparc32_sol2_init_abi(), sparc64_linux_init_abi(), sparc64_sol2_init_abi(), sparc64fbsd_init_abi(), sparc64nbsd_init_abi(), and tilegx_linux_init_abi().
Definition at line 515 of file minsyms.c.
References ALL_OBJFILE_OSECTIONS, obj_section_addr, obj_section_endaddr, and obj_section_offset.
Referenced by lookup_minimal_symbol_by_pc_section_1().
|
static |
Definition at line 913 of file minsyms.c.
References symfile_objfile.
Referenced by prim_record_minimal_symbol_full().
Definition at line 818 of file minsyms.c.
References lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, mst_text_gnu_ifunc, and MSYMBOL_TYPE.
Referenced by svr4_in_dynsym_resolve_code().
void init_minimal_symbol_collection | ( | void | ) |
Definition at line 925 of file minsyms.c.
References BUNCH_SIZE, msym_bunch_index, and msym_count.
Referenced by coff_symfile_read(), dbx_symfile_read(), elf_read_minimal_symbols(), elfmdebug_build_psymtabs(), macho_symfile_read(), mipscoff_symfile_read(), and xcoff_initial_scan().
void install_minimal_symbols | ( | struct objfile * | objfile | ) |
Definition at line 1248 of file minsyms.c.
References build_minimal_symbol_hash_tables(), BUNCH_SIZE, compact_minimal_symbols(), compare_minimal_symbols(), msym_bunch::contents, fprintf_unfiltered(), gdb_stdlog, objfile_per_bfd_storage::minimal_symbol_count, objfile_per_bfd_storage::minsyms_read, msym_bunch_index, msym_count, objfile_per_bfd_storage::msymbols, msym_bunch::next, objfile_name(), objfile::per_bfd, qsort, objfile_per_bfd_storage::storage_obstack, and symtab_create_debug.
Referenced by coff_symfile_read(), dbx_symfile_read(), elf_read_minimal_symbols(), elfmdebug_build_psymtabs(), macho_symfile_read(), mipscoff_symfile_read(), and xcoff_initial_scan().
void iterate_over_minimal_symbols | ( | struct objfile * | objf, |
const char * | name, | ||
void(*)(struct minimal_symbol *, void *) | callback, | ||
void * | user_data | ||
) |
Definition at line 358 of file minsyms.c.
References case_sensitive_on, minimal_symbol::demangled_hash_next, hash(), minimal_symbol::hash_next, int, MINIMAL_SYMBOL_HASH_SIZE, objfile_per_bfd_storage::msymbol_demangled_hash, msymbol_hash(), objfile_per_bfd_storage::msymbol_hash, msymbol_hash_iw(), MSYMBOL_LINKAGE_NAME, MSYMBOL_MATCHES_SEARCH_NAME, and objfile::per_bfd.
Referenced by search_minsyms_for_name().
struct bound_minimal_symbol lookup_bound_minimal_symbol | ( | const char * | name | ) |
Definition at line 335 of file minsyms.c.
References lookup_minimal_symbol().
Referenced by address_info(), find_function_in_inferior(), find_objc_msgsend(), gcc_symbol_address(), push_expression_name(), simple_read_overlay_table(), value_fn_field(), write_dollar_variable(), and yyparse().
struct bound_minimal_symbol lookup_minimal_symbol | ( | const char * | name, |
const char * | sfile, | ||
struct objfile * | objf | ||
) |
Definition at line 163 of file minsyms.c.
References case_sensitive_on, cp_canonicalize_string(), current_language, minimal_symbol::demangled_hash_next, minimal_symbol::filename, fprintf_unfiltered(), gdb_stdlog, hash(), minimal_symbol::hash_next, host_address_to_string(), int, language_defn::la_language, language_cplus, MINIMAL_SYMBOL_HASH_SIZE, bound_minimal_symbol::minsym, mst_file_bss, mst_file_data, mst_file_text, mst_solib_trampoline, mst_unknown, objfile_per_bfd_storage::msymbol_demangled_hash, msymbol_hash(), objfile_per_bfd_storage::msymbol_hash, msymbol_hash_iw(), MSYMBOL_LINKAGE_NAME, MSYMBOL_MATCHES_SEARCH_NAME, MSYMBOL_TYPE, name, objfile::next, object_files, bound_minimal_symbol::objfile, objfile_debug_name(), objfile::per_bfd, objfile::separate_debug_objfile_backlink, symbol_lookup_debug, and xfree().
Referenced by ada_has_this_exception_support(), ada_main_name(), ada_tasks_inferior_data_sniffer(), ada_update_initial_language(), arm_skip_stub(), avr_scan_prologue(), bsd_uthread_lookup_address(), call_site_to_target_addr(), call_target_sbrk(), checkpoint_command(), coff_symfile_read(), compile_object_load(), convert_code_addr_to_desc_addr(), create_exception_master_breakpoint(), create_std_terminate_master_breakpoint(), d_main_name(), define_symbol(), elf_gnu_ifunc_resolve_by_got(), elf_locate_base(), enable_break(), end_psymtab(), evaluate_subexp_standard(), find_imps(), find_minimal_symbol_address(), find_stab_function_addr(), flush_ea_cache(), frv_frame_this_id(), gcc_convert_symbol(), gen_var_ref(), get_running_thread_msymbol(), get_signo(), glibc_skip_solib_resolver(), gnuv3_get_typeid(), gnuv3_skip_trampoline(), go_main_name(), has_ravenscar_runtime(), hppa_symbol_address(), inferior_call_waitpid(), inferior_has_bug(), inside_main_func(), jit_breakpoint_re_set_internal(), ld_so_xfer_auxv(), lm_base(), lookup_bound_minimal_symbol(), lookup_child_selector(), lookup_objc_class(), m32c_m16c_address_to_pointer(), m32c_m16c_pointer_to_address(), m32c_return_value(), m32r_frame_this_id(), m68hc11_get_register_info(), macho_resolve_oso_sym_with_minsym(), main_got(), minsym_lookup_iterator_cb(), mips_linux_skip_resolver(), obsd_skip_solib_resolver(), ocl_enable_break(), pascal_main_name(), pd_enable(), pdc_symbol_addrs(), ppc_linux_spe_context_lookup(), ps_pglobal_lookup(), remote_check_symbols(), scope_info(), simple_overlay_update(), simple_read_overlay_table(), sol2_skip_solib_resolver(), spu_catch_start(), spu_enable_break(), spu_get_overlay_table(), tui_get_begin_asm_address(), value_nsstring(), and value_static_field().
struct bound_minimal_symbol lookup_minimal_symbol_and_objfile | ( | const char * | name | ) |
Definition at line 881 of file minsyms.c.
References ALL_OBJFILES, hash(), minimal_symbol::hash_next, MINIMAL_SYMBOL_HASH_SIZE, bound_minimal_symbol::minsym, msymbol_hash(), objfile_per_bfd_storage::msymbol_hash, MSYMBOL_LINKAGE_NAME, bound_minimal_symbol::objfile, and objfile::per_bfd.
Referenced by add_pe_forwarded_sym(), address_info(), glibc_skip_solib_resolver(), and jit_breakpoint_re_set_internal().
struct bound_minimal_symbol lookup_minimal_symbol_by_pc | ( | CORE_ADDR | pc | ) |
Definition at line 801 of file minsyms.c.
References find_pc_section(), and lookup_minimal_symbol_by_pc_section_1().
Referenced by amd64_skip_main_prologue(), amd64_windows_skip_trampoline_code(), arm_pc_is_thumb(), arm_pe_skip_trampoline_code(), arm_skip_stack_protector(), arm_wince_skip_main_prologue(), c_val_print(), call_site_find_chain_1(), call_site_for_pc(), call_site_to_target_addr(), convert_code_addr_to_desc_addr(), dwarf_expr_reg_to_entry_parameter(), elf_gnu_ifunc_record_cache(), find_frame_funname(), find_pc_sect_line(), frame_info(), frv_skip_main_prologue(), ftrace_update_function(), func_verify_no_selftailcall(), get_function_name(), get_pc_function_start(), get_prev_frame_always_1(), gnuv2_value_rtti_type(), gnuv3_get_typename_from_type_info(), gnuv3_rtti_type(), gnuv3_skip_trampoline(), i386_pe_skip_trampoline_code(), i386_skip_main_prologue(), ia64_convert_from_func_ptr_addr(), in_gnu_ifunc_stub(), info_cb(), info_checkpoints_command(), m32c_m16c_address_to_pointer(), m32c_m16c_pointer_to_address(), m68hc11_get_return_insn(), maintenance_translate_address(), mips_make_symbol_special(), mips_pc_is_micromips(), mips_pc_is_mips(), mips_pc_is_mips16(), mips_pc_isa(), mips_skip_pic_trampoline_code(), mips_stub_frame_sniffer(), msp430_skip_trampoline_code(), pascal_val_print(), pc_is_isa32(), powerpc_linux_in_dynsym_resolve_code(), ppc_elfv2_skip_entrypoint(), py_print_frame(), read_atcb(), resolve_sal_pc(), rs6000_skip_main_prologue(), rs6000_skip_trampoline_code(), skip_prologue_function(), tailcall_dump(), until_next_command(), and write_exp_msymbol().
struct minimal_symbol* lookup_minimal_symbol_by_pc_name | ( | CORE_ADDR | pc, |
const char * | name, | ||
struct objfile * | objf | ||
) |
Definition at line 443 of file minsyms.c.
References hash(), minimal_symbol::hash_next, MINIMAL_SYMBOL_HASH_SIZE, msymbol_hash(), objfile_per_bfd_storage::msymbol_hash, MSYMBOL_LINKAGE_NAME, MSYMBOL_VALUE_ADDRESS, objfile::next, object_files, objfile::per_bfd, and objfile::separate_debug_objfile_backlink.
Referenced by arm_exidx_new_objfile(), and fixup_section().
struct bound_minimal_symbol lookup_minimal_symbol_by_pc_section | ( | CORE_ADDR | pc, |
struct obj_section * | section | ||
) |
Definition at line 779 of file minsyms.c.
References find_pc_section(), and lookup_minimal_symbol_by_pc_section_1().
Referenced by build_address_symbolic(), expand_symtab_containing_pc(), find_pc_partial_function_gnu_ifunc(), find_pc_sect_compunit_symtab(), maintenance_translate_address(), skip_prologue_sal(), sym_info(), and tui_find_disassembly_address().
|
static |
Definition at line 547 of file minsyms.c.
References frob_address(), gdb_assert, matching_obj_sections(), objfile_per_bfd_storage::minimal_symbol_count, bound_minimal_symbol::minsym, mst_abs, mst_solib_trampoline, mst_text, MSYMBOL_OBJ_SECTION, MSYMBOL_SIZE, MSYMBOL_TYPE, MSYMBOL_VALUE_RAW_ADDRESS, objfile_per_bfd_storage::msymbols, bound_minimal_symbol::objfile, objfile_separate_debug_iterate(), and objfile::per_bfd.
Referenced by lookup_minimal_symbol_by_pc(), lookup_minimal_symbol_by_pc_section(), and lookup_solib_trampoline_symbol_by_pc().
struct bound_minimal_symbol lookup_minimal_symbol_solib_trampoline | ( | const char * | name, |
struct objfile * | objf | ||
) |
Definition at line 475 of file minsyms.c.
References hash(), minimal_symbol::hash_next, MINIMAL_SYMBOL_HASH_SIZE, bound_minimal_symbol::minsym, mst_solib_trampoline, msymbol_hash(), objfile_per_bfd_storage::msymbol_hash, MSYMBOL_LINKAGE_NAME, MSYMBOL_TYPE, objfile::next, object_files, bound_minimal_symbol::objfile, objfile::per_bfd, and objfile::separate_debug_objfile_backlink.
struct bound_minimal_symbol lookup_minimal_symbol_text | ( | const char * | name, |
struct objfile * | objf | ||
) |
Definition at line 392 of file minsyms.c.
References hash(), minimal_symbol::hash_next, MINIMAL_SYMBOL_HASH_SIZE, bound_minimal_symbol::minsym, mst_file_text, mst_text, mst_text_gnu_ifunc, msymbol_hash(), objfile_per_bfd_storage::msymbol_hash, MSYMBOL_LINKAGE_NAME, MSYMBOL_TYPE, objfile::next, object_files, bound_minimal_symbol::objfile, objfile::per_bfd, and objfile::separate_debug_objfile_backlink.
Referenced by create_longjmp_master_breakpoint(), create_overlay_event_breakpoint(), and find_pc_sect_line().
|
static |
Definition at line 1368 of file minsyms.c.
References find_pc_section(), lookup_minimal_symbol_by_pc_section_1(), bound_minimal_symbol::minsym, mst_solib_trampoline, and MSYMBOL_TYPE.
Referenced by find_solib_trampoline_target().
struct cleanup* make_cleanup_discard_minimal_symbols | ( | void | ) |
Definition at line 1115 of file minsyms.c.
References do_discard_minimal_symbols_cleanup(), and make_cleanup().
Referenced by coff_symfile_read(), dbx_symfile_read(), elf_read_minimal_symbols(), elfmdebug_build_psymtabs(), macho_symfile_read(), mipscoff_symfile_read(), and xcoff_initial_scan().
CORE_ADDR minimal_symbol_upper_bound | ( | struct bound_minimal_symbol | minsym | ) |
Definition at line 1434 of file minsyms.c.
References BMSYMBOL_VALUE_ADDRESS, gdb_assert, bound_minimal_symbol::minsym, MSYMBOL_LINKAGE_NAME, MSYMBOL_OBJ_SECTION, MSYMBOL_SECTION, MSYMBOL_SIZE, MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_RAW_ADDRESS, obj_section_endaddr, and bound_minimal_symbol::objfile.
Referenced by find_objc_msgsend(), and find_pc_partial_function_gnu_ifunc().
Definition at line 102 of file minsyms.c.
References hash(), string, and SYMBOL_HASH_NEXT.
Referenced by add_minsym_to_hash_table(), cache_symbol(), find_entry(), iterate_over_minimal_symbols(), lookup_minimal_symbol(), lookup_minimal_symbol_and_objfile(), lookup_minimal_symbol_by_pc_name(), lookup_minimal_symbol_solib_trampoline(), and lookup_minimal_symbol_text().
Definition at line 83 of file minsyms.c.
References hash(), skip_spaces_const(), string, and SYMBOL_HASH_NEXT.
Referenced by add_minsym_to_demangled_hash_table(), dict_hash(), iterate_over_minimal_symbols(), and lookup_minimal_symbol().
void prim_record_minimal_symbol | ( | const char * | name, |
CORE_ADDR | address, | ||
enum minimal_symbol_type | ms_type, | ||
struct objfile * | objfile | ||
) |
Definition at line 938 of file minsyms.c.
References mst_bss, mst_data, mst_file_bss, mst_file_data, mst_file_text, mst_solib_trampoline, mst_text, mst_text_gnu_ifunc, prim_record_minimal_symbol_and_info(), SECT_OFF_BSS, SECT_OFF_DATA, and SECT_OFF_TEXT.
Referenced by read_alphacoff_dynamic_symtab(), and read_dbx_dynamic_symtab().
struct minimal_symbol* prim_record_minimal_symbol_and_info | ( | const char * | name, |
CORE_ADDR | address, | ||
enum minimal_symbol_type | ms_type, | ||
int | section, | ||
struct objfile * | objfile | ||
) |
Definition at line 1043 of file minsyms.c.
References prim_record_minimal_symbol_full().
Referenced by add_pe_exported_sym(), add_pe_forwarded_sym(), macho_symtab_add_minsym(), parse_partial_symbols(), prim_record_minimal_symbol(), and record_minimal_symbol().
struct minimal_symbol* prim_record_minimal_symbol_full | ( | const char * | name, |
int | name_len, | ||
int | copy_name, | ||
CORE_ADDR | address, | ||
enum minimal_symbol_type | ms_type, | ||
int | section, | ||
struct objfile * | objfile | ||
) |
Definition at line 971 of file minsyms.c.
References BUNCH_SIZE, msym_bunch::contents, minimal_symbol::demangled_hash_next, GCC2_COMPILED_FLAG_SYMBOL, GCC_COMPILED_FLAG_SYMBOL, get_symbol_leading_char(), minimal_symbol::hash_next, language_auto, objfile_per_bfd_storage::minsyms_read, mst_file_text, msym_bunch, msym_bunch_index, msym_count, MSYMBOL_SECTION, MSYMBOL_SET_LANGUAGE, MSYMBOL_SET_NAMES, MSYMBOL_TARGET_FLAG_1, MSYMBOL_TARGET_FLAG_2, MSYMBOL_TYPE, objfile_per_bfd_storage::n_minsyms, name, msym_bunch::next, objfile::obfd, objfile::per_bfd, SET_MSYMBOL_VALUE_ADDRESS, minimal_symbol::size, startswith(), and objfile_per_bfd_storage::storage_obstack.
Referenced by prim_record_minimal_symbol_and_info(), and record_minimal_symbol().
Definition at line 828 of file minsyms.c.
References _, error(), and paddress().
|
static |
Definition at line 858 of file minsyms.c.
References _, and internal_error().
|
static |
Definition at line 849 of file minsyms.c.
References _, and internal_error().
void terminate_minimal_symbol_table | ( | struct objfile * | objfile | ) |
Definition at line 1343 of file minsyms.c.
References language_unknown, arm-linux::m, objfile_per_bfd_storage::minimal_symbol_count, mst_unknown, MSYMBOL_SET_LANGUAGE, MSYMBOL_TYPE, objfile_per_bfd_storage::msymbols, objfile::per_bfd, and objfile_per_bfd_storage::storage_obstack.
Referenced by allocate_objfile(), jit_object_close_impl(), and reread_symbols().
const struct gnu_ifunc_fns* gnu_ifunc_fns_p = &stub_gnu_ifunc_fns |
Definition at line 876 of file minsyms.c.
Referenced by _initialize_elfread().
|
static |
Definition at line 70 of file minsyms.c.
Referenced by prim_record_minimal_symbol_full().
|
static |
Definition at line 74 of file minsyms.c.
Referenced by init_minimal_symbol_collection(), install_minimal_symbols(), and prim_record_minimal_symbol_full().
|
static |
Definition at line 78 of file minsyms.c.
Referenced by init_minimal_symbol_collection(), install_minimal_symbols(), and prim_record_minimal_symbol_full().
|
static |