GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions | Variables
symtab.h File Reference
#include <array>
#include <vector>
#include <string>
#include <set>
#include "gdbsupport/gdb_vecs.h"
#include "gdbtypes.h"
#include "gdbsupport/gdb_obstack.h"
#include "gdbsupport/gdb_regex.h"
#include "gdbsupport/enum-flags.h"
#include "gdbsupport/function-view.h"
#include "gdbsupport/gdb_optional.h"
#include "gdbsupport/gdb_string_view.h"
#include "gdbsupport/next-iterator.h"
#include "gdbsupport/iterator-range.h"
#include "completer.h"
#include "gdb-demangle.h"
#include "split-name.h"
#include "frame.h"
#include "minsyms.h"

Go to the source code of this file.

Classes

class  ada_lookup_name_info
 
struct  demangle_for_lookup_info
 
class  lookup_name_info
 
struct  general_symbol_info
 
struct  minimal_symbol
 
struct  symbol_computed_ops
 
struct  symbol_block_ops
 
struct  symbol_register_ops
 
struct  symbol_impl
 
struct  symbol
 
struct  block_symbol
 
struct  template_symbol
 
struct  rust_vtable_symbol
 
struct  linetable_entry
 
struct  linetable
 
struct  symtab
 
struct  compunit_symtab
 
struct  field_of_this_result
 
struct  gnu_ifunc_fns
 
struct  symtab_and_line
 
struct  symbol_search
 
class  global_symbol_searcher
 
class  demangle_result_storage
 
class  symbol_searcher
 
struct  info_sources_filter
 

Macros

#define MINSYM_TYPE_BITS   4
 
#define SYMBOL_DOMAIN_BITS   3
 
#define SYMBOL_ACLASS_BITS   5
 
#define SYMBOL_COMPUTED_OPS(symbol)   ((symbol)->impl ().ops_computed)
 
#define SYMBOL_BLOCK_OPS(symbol)   ((symbol)->impl ().ops_block)
 
#define SYMBOL_REGISTER_OPS(symbol)   ((symbol)->impl ().ops_register)
 
#define SYMBOL_LOCATION_BATON(symbol)   (symbol)->aux_value
 
#define VTBL_FNADDR_OFFSET   2
 
#define GCC_COMPILED_FLAG_SYMBOL   "gcc_compiled."
 
#define GCC2_COMPILED_FLAG_SYMBOL   "gcc2_compiled."
 
#define gnu_ifunc_resolve_addr   gnu_ifunc_fns_p->gnu_ifunc_resolve_addr
 
#define gnu_ifunc_resolve_name   gnu_ifunc_fns_p->gnu_ifunc_resolve_name
 
#define gnu_ifunc_resolver_stop   gnu_ifunc_fns_p->gnu_ifunc_resolver_stop
 
#define gnu_ifunc_resolver_return_stop    gnu_ifunc_fns_p->gnu_ifunc_resolver_return_stop
 
#define symtab_create_debug_printf(fmt, ...)    debug_prefixed_printf_cond (symtab_create_debug >= 1, "symtab-create", fmt, ##__VA_ARGS__)
 
#define symtab_create_debug_printf_v(fmt, ...)    debug_prefixed_printf_cond (symtab_create_debug >= 2, "symtab-create", fmt, ##__VA_ARGS__)
 
#define symbol_lookup_debug_printf(fmt, ...)
 
#define symbol_lookup_debug_printf_v(fmt, ...)
 
#define SYMBOL_LOOKUP_SCOPED_DEBUG_ENTER_EXIT    scoped_debug_enter_exit (symbol_lookup_debug_enabled, "symbol-lookup")
 

Typedefs

typedef bool symbol_name_matcher_ftype(const char *symbol_search_name, const lookup_name_info &lookup_name, completion_match_result *comp_match_res)
 
typedef std::vector< CORE_ADDR > section_offsets
 
using symtab_range = next_range<symtab>
 
using compunit_symtab_range = next_range<compunit_symtab>
 
typedef std::pair< symbol_search, symbol_searchmodule_symbol_search
 
typedef bool symbol_found_callback_ftype(struct block_symbol *bsym)
 

Enumerations

enum class  symbol_name_match_type { WILD , FULL , SEARCH_NAME , EXPRESSION }
 
enum  minimal_symbol_type {
  mst_unknown = 0 , mst_text , mst_text_gnu_ifunc , mst_data_gnu_ifunc ,
  mst_slot_got_plt , mst_data , mst_bss , mst_abs ,
  mst_solib_trampoline , mst_file_text , mst_file_data , mst_file_bss ,
  nr_minsym_types
}
 
enum  domain_enum {
  UNDEF_DOMAIN , VAR_DOMAIN , STRUCT_DOMAIN , MODULE_DOMAIN ,
  LABEL_DOMAIN , COMMON_BLOCK_DOMAIN , NR_DOMAINS
}
 
enum  search_domain {
  VARIABLES_DOMAIN = 0 , FUNCTIONS_DOMAIN = 1 , TYPES_DOMAIN = 2 , MODULES_DOMAIN = 3 ,
  ALL_DOMAIN = 4
}
 
enum  address_class {
  LOC_UNDEF , LOC_CONST , LOC_STATIC , LOC_REGISTER ,
  LOC_ARG , LOC_REF_ARG , LOC_REGPARM_ADDR , LOC_LOCAL ,
  LOC_TYPEDEF , LOC_LABEL , LOC_BLOCK , LOC_CONST_BYTES ,
  LOC_UNRESOLVED , LOC_OPTIMIZED_OUT , LOC_COMPUTED , LOC_COMMON_BLOCK ,
  LOC_FINAL_VALUE
}
 
enum  symbol_subclass_kind { SYMBOL_NONE , SYMBOL_TEMPLATE , SYMBOL_RUST_VTABLE }
 
enum class  complete_symbol_mode { EXPRESSION , LINESPEC }
 

Functions

unsigned int search_name_hash (enum language language, const char *search_name)
 
CORE_ADDR symbol_overlayed_address (CORE_ADDR, struct obj_section *)
 
CORE_ADDR get_symbol_address (const struct symbol *sym)
 
gdb::unique_xmalloc_ptr< char > symbol_find_demangled_name (struct general_symbol_info *gsymbol, const char *mangled)
 
bool symbol_matches_search_name (const struct general_symbol_info *gsymbol, const lookup_name_info &name)
 
 gdb_static_assert (nr_minsym_types<=(1<< MINSYM_TYPE_BITS))
 
CORE_ADDR get_msymbol_address (struct objfile *objf, const struct minimal_symbol *minsym)
 
 gdb_static_assert (NR_DOMAINS<=(1<< SYMBOL_DOMAIN_BITS))
 
const char * domain_name (domain_enum)
 
const char * search_domain_name (enum search_domain)
 
 gdb_static_assert (LOC_FINAL_VALUE<=(1<< SYMBOL_ACLASS_BITS))
 
bool symbol_matches_domain (enum language symbol_language, domain_enum symbol_domain, domain_enum domain)
 
int register_symbol_computed_impl (enum address_class, const struct symbol_computed_ops *)
 
int register_symbol_block_impl (enum address_class aclass, const struct symbol_block_ops *ops)
 
int register_symbol_register_impl (enum address_class, const struct symbol_register_ops *)
 
static bool is_main_symtab_of_compunit_symtab (struct symtab *symtab)
 
static bool compunit_epilogue_unwind_valid (struct compunit_symtab *cust)
 
const char * multiple_symbols_select_mode (void)
 
struct symtablookup_symtab (const char *)
 
struct block_symbol lookup_symbol_in_language (const char *, const struct block *, const domain_enum, enum language, struct field_of_this_result *)
 
struct block_symbol lookup_symbol (const char *, const struct block *, const domain_enum, struct field_of_this_result *)
 
struct block_symbol lookup_symbol_search_name (const char *search_name, const struct block *block, domain_enum domain)
 
struct block_symbol lookup_symbol_in_static_block (const char *name, const struct block *block, const domain_enum domain)
 
struct block_symbol lookup_static_symbol (const char *name, const domain_enum domain)
 
struct block_symbol lookup_global_symbol (const char *name, const struct block *block, const domain_enum domain)
 
struct symbollookup_symbol_in_block (const char *name, symbol_name_match_type match_type, const struct block *block, const domain_enum domain)
 
struct block_symbol lookup_language_this (const struct language_defn *lang, const struct block *block)
 
struct typelookup_struct (const char *, const struct block *)
 
struct typelookup_union (const char *, const struct block *)
 
struct typelookup_enum (const char *, const struct block *)
 
struct symbolfind_pc_function (CORE_ADDR)
 
struct symbolfind_pc_sect_function (CORE_ADDR, struct obj_section *)
 
struct symbolfind_pc_sect_containing_function (CORE_ADDR pc, struct obj_section *section)
 
struct symbolfind_symbol_at_address (CORE_ADDR)
 
bool find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address, CORE_ADDR *endaddr, const struct block **block=nullptr)
 
bool find_pc_partial_function_sym (CORE_ADDR pc, const general_symbol_info **sym, CORE_ADDR *address, CORE_ADDR *endaddr, const struct block **block=nullptr)
 
bool find_function_entry_range_from_pc (CORE_ADDR pc, const char **name, CORE_ADDR *address, CORE_ADDR *endaddr)
 
struct typefind_function_type (CORE_ADDR pc)
 
struct typefind_gnu_ifunc_target_type (CORE_ADDR resolver_funaddr)
 
bound_minimal_symbol find_gnu_ifunc (const symbol *sym)
 
void clear_pc_function_cache (void)
 
struct compunit_symtabfind_pc_compunit_symtab (CORE_ADDR)
 
struct compunit_symtabfind_pc_sect_compunit_symtab (CORE_ADDR, struct obj_section *)
 
bool find_pc_line_pc_range (CORE_ADDR, CORE_ADDR *, CORE_ADDR *)
 
void reread_symbols (int from_tty)
 
struct typelookup_transparent_type (const char *)
 
struct typebasic_lookup_transparent_type (const char *)
 
bool in_gnu_ifunc_stub (CORE_ADDR pc)
 
CORE_ADDR find_solib_trampoline_target (frame_info_ptr, CORE_ADDR)
 
struct symtab_and_line find_pc_line (CORE_ADDR, int)
 
struct symtab_and_line find_pc_sect_line (CORE_ADDR, struct obj_section *, int)
 
struct symtabfind_pc_line_symtab (CORE_ADDR)
 
bool find_line_pc (struct symtab *, int, CORE_ADDR *)
 
bool find_line_pc_range (struct symtab_and_line, CORE_ADDR *, CORE_ADDR *)
 
void resolve_sal_pc (struct symtab_and_line *)
 
void clear_solib (void)
 
void default_collect_symbol_completion_matches_break_on (completion_tracker &tracker, complete_symbol_mode mode, symbol_name_match_type name_match_type, const char *text, const char *word, const char *break_on, enum type_code code)
 
void collect_symbol_completion_matches (completion_tracker &tracker, complete_symbol_mode mode, symbol_name_match_type name_match_type, const char *, const char *)
 
void collect_symbol_completion_matches_type (completion_tracker &tracker, const char *, const char *, enum type_code)
 
void collect_file_symbol_completion_matches (completion_tracker &tracker, complete_symbol_mode, symbol_name_match_type name_match_type, const char *, const char *, const char *)
 
completion_list make_source_files_completion_list (const char *, const char *)
 
bool symbol_is_function_or_method (symbol *sym)
 
bool symbol_is_function_or_method (minimal_symbol *msymbol)
 
template<typename Symbol >
static bool completion_skip_symbol (complete_symbol_mode mode, Symbol *sym)
 
bool matching_obj_sections (struct obj_section *, struct obj_section *)
 
struct symtabfind_line_symtab (struct symtab *, int, int *, bool *)
 
symtab_and_line find_function_start_sal (symbol *sym, bool funfirstline)
 
symtab_and_line find_function_start_sal (CORE_ADDR func_addr, obj_section *section, bool funfirstline)
 
void skip_prologue_sal (struct symtab_and_line *)
 
CORE_ADDR skip_prologue_using_sal (struct gdbarch *gdbarch, CORE_ADDR func_addr)
 
void fixup_symbol_section (struct symbol *sym, struct objfile *objfile)
 
symbolfind_function_alias_target (bound_minimal_symbol msymbol)
 
std::vector< module_symbol_searchsearch_module_symbols (const char *module_regexp, const char *regexp, const char *type_regexp, search_domain kind)
 
std::string symbol_to_info_string (struct symbol *sym, int block, enum search_domain kind)
 
bool treg_matches_sym_type_name (const compiled_regex &treg, const struct symbol *sym)
 
const char * main_name ()
 
enum language main_language (void)
 
struct block_symbol lookup_global_symbol_from_objfile (struct objfile *main_objfile, enum block_enum block_index, const char *name, const domain_enum domain)
 
bool producer_is_realview (const char *producer)
 
static bool symbol_lookup_debug_enabled ()
 
static bool symbol_lookup_debug_enabled_v ()
 
bool compare_filenames_for_search (const char *filename, const char *search_name)
 
bool compare_glob_filenames_for_search (const char *filename, const char *search_name)
 
bool iterate_over_some_symtabs (const char *name, const char *real_path, struct compunit_symtab *first, struct compunit_symtab *after_last, gdb::function_view< bool(symtab *)> callback)
 
void iterate_over_symtabs (const char *name, gdb::function_view< bool(symtab *)> callback)
 
std::vector< CORE_ADDR > find_pcs_for_symtab_line (struct symtab *symtab, int line, const linetable_entry **best_entry)
 
bool iterate_over_symbols (const struct block *block, const lookup_name_info &name, const domain_enum domain, gdb::function_view< symbol_found_callback_ftype > callback)
 
bool iterate_over_symbols_terminated (const struct block *block, const lookup_name_info &name, const domain_enum domain, gdb::function_view< symbol_found_callback_ftype > callback)
 
const char * demangle_for_lookup (const char *name, enum language lang, demangle_result_storage &storage)
 
bool completion_list_add_name (completion_tracker &tracker, language symbol_language, const char *symname, const lookup_name_info &lookup_name, const char *text, const char *word)
 
void info_sources_worker (struct ui_out *uiout, bool group_by_objfile, const info_sources_filter &filter)
 

Variables

gdb::array_view< const struct symbol_implsymbol_impls
 
int currently_reading_symtab
 
const char multiple_symbols_ask []
 
const char multiple_symbols_all []
 
const char multiple_symbols_cancel []
 
const struct gnu_ifunc_fnsgnu_ifunc_fns_p
 
unsigned int symtab_create_debug
 
unsigned int symbol_lookup_debug
 
bool basenames_may_differ
 

Macro Definition Documentation

◆ GCC2_COMPILED_FLAG_SYMBOL

#define GCC2_COMPILED_FLAG_SYMBOL   "gcc2_compiled."

◆ GCC_COMPILED_FLAG_SYMBOL

#define GCC_COMPILED_FLAG_SYMBOL   "gcc_compiled."

Definition at line 2284 of file symtab.h.

Referenced by read_ofile_symtab(), and minimal_symbol_reader::record_full().

◆ gnu_ifunc_resolve_addr

#define gnu_ifunc_resolve_addr   gnu_ifunc_fns_p->gnu_ifunc_resolve_addr

◆ gnu_ifunc_resolve_name

#define gnu_ifunc_resolve_name   gnu_ifunc_fns_p->gnu_ifunc_resolve_name

Definition at line 2314 of file symtab.h.

Referenced by minsym_found().

◆ gnu_ifunc_resolver_return_stop

#define gnu_ifunc_resolver_return_stop    gnu_ifunc_fns_p->gnu_ifunc_resolver_return_stop

Definition at line 2316 of file symtab.h.

Referenced by bpstat_run_callbacks().

◆ gnu_ifunc_resolver_stop

#define gnu_ifunc_resolver_stop   gnu_ifunc_fns_p->gnu_ifunc_resolver_stop

Definition at line 2315 of file symtab.h.

Referenced by bpstat_run_callbacks().

◆ MINSYM_TYPE_BITS

#define MINSYM_TYPE_BITS   4

Definition at line 716 of file symtab.h.

◆ SYMBOL_ACLASS_BITS

#define SYMBOL_ACLASS_BITS   5

Definition at line 1082 of file symtab.h.

◆ SYMBOL_BLOCK_OPS

#define SYMBOL_BLOCK_OPS ( symbol)    ((symbol)->impl ().ops_block)

◆ SYMBOL_COMPUTED_OPS

#define SYMBOL_COMPUTED_OPS ( symbol)    ((symbol)->impl ().ops_computed)

◆ SYMBOL_DOMAIN_BITS

#define SYMBOL_DOMAIN_BITS   3

Definition at line 936 of file symtab.h.

◆ SYMBOL_LOCATION_BATON

#define SYMBOL_LOCATION_BATON ( symbol)    (symbol)->aux_value

◆ symbol_lookup_debug_printf

#define symbol_lookup_debug_printf ( fmt,
... )

◆ symbol_lookup_debug_printf_v

#define symbol_lookup_debug_printf_v ( fmt,
... )
Value:
debug_prefixed_printf_cond (symbol_lookup_debug_enabled_v (), \
"symbol-lookup", fmt, ##__VA_ARGS__)
static bool symbol_lookup_debug_enabled_v()
Definition symtab.h:2705

Definition at line 2718 of file symtab.h.

Referenced by lookup_language_this(), lookup_symbol_in_block(), lookup_symbol_in_objfile_symtabs(), lookup_symbol_via_quick_fns(), and treg_matches_sym_type_name().

◆ SYMBOL_LOOKUP_SCOPED_DEBUG_ENTER_EXIT

#define SYMBOL_LOOKUP_SCOPED_DEBUG_ENTER_EXIT    scoped_debug_enter_exit (symbol_lookup_debug_enabled, "symbol-lookup")

Definition at line 2724 of file symtab.h.

Referenced by lookup_symbol_aux(), and lookup_symbol_in_language().

◆ SYMBOL_REGISTER_OPS

#define SYMBOL_REGISTER_OPS ( symbol)    ((symbol)->impl ().ops_register)

◆ symtab_create_debug_printf

#define symtab_create_debug_printf ( fmt,
... )    debug_prefixed_printf_cond (symtab_create_debug >= 1, "symtab-create", fmt, ##__VA_ARGS__)

◆ symtab_create_debug_printf_v

#define symtab_create_debug_printf_v ( fmt,
... )    debug_prefixed_printf_cond (symtab_create_debug >= 2, "symtab-create", fmt, ##__VA_ARGS__)

◆ VTBL_FNADDR_OFFSET

#define VTBL_FNADDR_OFFSET   2

Definition at line 2019 of file symtab.h.

Referenced by c_value_print_struct(), and pascal_language::value_print_inner().

Typedef Documentation

◆ compunit_symtab_range

Definition at line 1984 of file symtab.h.

◆ module_symbol_search

Definition at line 2636 of file symtab.h.

◆ section_offsets

typedef std::vector<CORE_ADDR> section_offsets

Definition at line 1669 of file symtab.h.

◆ symbol_found_callback_ftype

typedef bool symbol_found_callback_ftype(struct block_symbol *bsym)

Definition at line 2753 of file symtab.h.

◆ symbol_name_matcher_ftype

typedef bool symbol_name_matcher_ftype(const char *symbol_search_name, const lookup_name_info &lookup_name, completion_match_result *comp_match_res)

Definition at line 398 of file symtab.h.

◆ symtab_range

using symtab_range = next_range<symtab>

Definition at line 1749 of file symtab.h.

Enumeration Type Documentation

◆ address_class

Enumerator
LOC_UNDEF 
LOC_CONST 
LOC_STATIC 
LOC_REGISTER 
LOC_ARG 
LOC_REF_ARG 
LOC_REGPARM_ADDR 
LOC_LOCAL 
LOC_TYPEDEF 
LOC_LABEL 
LOC_BLOCK 
LOC_CONST_BYTES 
LOC_UNRESOLVED 
LOC_OPTIMIZED_OUT 
LOC_COMPUTED 
LOC_COMMON_BLOCK 
LOC_FINAL_VALUE 

Definition at line 967 of file symtab.h.

◆ complete_symbol_mode

enum class complete_symbol_mode
strong
Enumerator
EXPRESSION 
LINESPEC 

Definition at line 2384 of file symtab.h.

◆ domain_enum

Enumerator
UNDEF_DOMAIN 
VAR_DOMAIN 
STRUCT_DOMAIN 
MODULE_DOMAIN 
LABEL_DOMAIN 
COMMON_BLOCK_DOMAIN 
NR_DOMAINS 

Definition at line 899 of file symtab.h.

◆ minimal_symbol_type

Enumerator
mst_unknown 
mst_text 
mst_text_gnu_ifunc 
mst_data_gnu_ifunc 
mst_slot_got_plt 
mst_data 
mst_bss 
mst_abs 
mst_solib_trampoline 
mst_file_text 
mst_file_data 
mst_file_bss 
nr_minsym_types 

Definition at line 669 of file symtab.h.

◆ search_domain

Enumerator
VARIABLES_DOMAIN 
FUNCTIONS_DOMAIN 
TYPES_DOMAIN 
MODULES_DOMAIN 
ALL_DOMAIN 

Definition at line 944 of file symtab.h.

◆ symbol_name_match_type

enum class symbol_name_match_type
strong
Enumerator
WILD 
FULL 
SEARCH_NAME 
EXPRESSION 

Definition at line 62 of file symtab.h.

◆ symbol_subclass_kind

Enumerator
SYMBOL_NONE 
SYMBOL_TEMPLATE 
SYMBOL_RUST_VTABLE 

Definition at line 1215 of file symtab.h.

Function Documentation

◆ basic_lookup_transparent_type()

struct type * basic_lookup_transparent_type ( const char * name)
extern

◆ clear_pc_function_cache()

void clear_pc_function_cache ( void )
extern

◆ clear_solib()

void clear_solib ( void )
extern

◆ collect_file_symbol_completion_matches()

void collect_file_symbol_completion_matches ( completion_tracker & tracker,
complete_symbol_mode mode,
symbol_name_match_type name_match_type,
const char * text,
const char * word,
const char * srcfile )
extern

◆ collect_symbol_completion_matches()

void collect_symbol_completion_matches ( completion_tracker & tracker,
complete_symbol_mode mode,
symbol_name_match_type name_match_type,
const char * text,
const char * word )
extern

◆ collect_symbol_completion_matches_type()

void collect_symbol_completion_matches_type ( completion_tracker & tracker,
const char * text,
const char * word,
enum type_code )
extern

◆ compare_filenames_for_search()

bool compare_filenames_for_search ( const char * filename,
const char * search_name )

◆ compare_glob_filenames_for_search()

bool compare_glob_filenames_for_search ( const char * filename,
const char * search_name )

◆ completion_list_add_name()

bool completion_list_add_name ( completion_tracker & tracker,
language symbol_language,
const char * symname,
const lookup_name_info & lookup_name,
const char * text,
const char * word )

◆ completion_skip_symbol()

template<typename Symbol >
static bool completion_skip_symbol ( complete_symbol_mode mode,
Symbol * sym )
static

◆ compunit_epilogue_unwind_valid()

static bool compunit_epilogue_unwind_valid ( struct compunit_symtab * cust)
inlinestatic

◆ default_collect_symbol_completion_matches_break_on()

void default_collect_symbol_completion_matches_break_on ( completion_tracker & tracker,
complete_symbol_mode mode,
symbol_name_match_type name_match_type,
const char * text,
const char * word,
const char * break_on,
enum type_code code )
extern

◆ demangle_for_lookup()

const char * demangle_for_lookup ( const char * name,
enum language lang,
demangle_result_storage & storage )

◆ domain_name()

const char * domain_name ( domain_enum e)
extern

◆ find_function_alias_target()

symbol * find_function_alias_target ( bound_minimal_symbol msymbol)
extern

◆ find_function_entry_range_from_pc()

bool find_function_entry_range_from_pc ( CORE_ADDR pc,
const char ** name,
CORE_ADDR * address,
CORE_ADDR * endaddr )
extern

◆ find_function_start_sal() [1/2]

symtab_and_line find_function_start_sal ( CORE_ADDR func_addr,
obj_section * section,
bool funfirstline )
extern

◆ find_function_start_sal() [2/2]

symtab_and_line find_function_start_sal ( symbol * sym,
bool funfirstline )
extern

◆ find_function_type()

struct type * find_function_type ( CORE_ADDR pc)
extern

◆ find_gnu_ifunc()

bound_minimal_symbol find_gnu_ifunc ( const symbol * sym)
extern

◆ find_gnu_ifunc_target_type()

struct type * find_gnu_ifunc_target_type ( CORE_ADDR resolver_funaddr)
extern

◆ find_line_pc()

bool find_line_pc ( struct symtab * symtab,
int line,
CORE_ADDR * pc )
extern

◆ find_line_pc_range()

bool find_line_pc_range ( struct symtab_and_line sal,
CORE_ADDR * startptr,
CORE_ADDR * endptr )
extern

◆ find_line_symtab()

struct symtab * find_line_symtab ( struct symtab * sym_tab,
int line,
int * index,
bool * exact_match )
extern

◆ find_pc_compunit_symtab()

struct compunit_symtab * find_pc_compunit_symtab ( CORE_ADDR pc)
extern

◆ find_pc_function()

struct symbol * find_pc_function ( CORE_ADDR pc)
extern

◆ find_pc_line()

struct symtab_and_line find_pc_line ( CORE_ADDR pc,
int notcurrent )
extern

Definition at line 3295 of file symtab.c.

References symtab_and_line::end, find_pc_overlay(), find_pc_sect_line(), overlay_mapped_address(), overlay_unmapped_address(), symtab_and_line::pc, pc_in_unmapped_range(), and symtab_and_line::section.

Referenced by aarch64_scan_prologue(), after_prologue(), arc_make_frame_cache(), arm_linux_copy_svc(), BP_MANIPULATION(), btrace_compute_src_line_range(), c_parse(), call0_analyze_prologue(), convert_address_location_to_sals(), cp_lookup_symbol_via_imports(), cris_skip_prologue(), decode_static_tracepoint_spec(), default_macro_scope(), do_mixed_source_and_assembly(), do_mixed_source_and_assembly_deprecated(), find_frame_sal(), find_last_line_symbol(), find_pc_line_pc_range(), find_pc_line_symtab(), find_pc_sect_line(), finish_backward(), finish_forward(), frv_skip_prologue(), ft32_skip_prologue(), gdbscm_find_pc_line(), h8300_skip_prologue(), handle_step_into_function(), handle_step_into_function_backward(), info_checkpoints_command(), insert_single_step_breakpoint(), iq2000_skip_prologue(), list_command(), m32r_skip_prologue(), m68hc11_skip_prologue(), microblaze_skip_prologue(), moxie_skip_prologue(), or1k_skip_prologue(), parse_breakpoint_sals(), print_one_static_tracepoint_marker(), process_event_stop_test(), pspy_find_pc_line(), recpy_bt_insn_sal(), tui_source_window_base::refill(), refine_prologue_limit(), save_bookmark_command(), set_momentary_breakpoint_at_pc(), set_traceframe_context(), skip_prologue(), skip_prologue_using_linetable(), skip_prologue_using_sal(), sparc64_skip_prologue(), tfind_line_command(), tui_update_source_windows_with_addr(), until_break_command(), until_next_command(), update_static_tracepoint(), v850_skip_prologue(), using_direct::valid_line(), write_macro_definitions(), xstormy16_skip_prologue(), xtensa_skip_prologue(), and z80_skip_prologue().

◆ find_pc_line_pc_range()

bool find_pc_line_pc_range ( CORE_ADDR pc,
CORE_ADDR * startptr,
CORE_ADDR * endptr )
extern

◆ find_pc_line_symtab()

struct symtab * find_pc_line_symtab ( CORE_ADDR pc)
extern

◆ find_pc_partial_function()

bool find_pc_partial_function ( CORE_ADDR pc,
const char ** name,
CORE_ADDR * address,
CORE_ADDR * endaddr,
const struct block ** block = nullptr )
extern

Definition at line 373 of file blockframe.c.

References find_pc_partial_function_sym(), general_symbol_info::linkage_name(), and name.

Referenced by aarch64_scan_prologue(), aarch64_skip_prologue(), aarch64_stack_frame_destroyed_p(), after_prologue(), alpha_sigtramp_frame_sniffer(), amd64_linux_sigtramp_p(), amd64_skip_prologue(), amd64_windows_skip_prologue(), amd64nbsd_sigtramp_p(), amd64obsd_sigtramp_p(), amd64obsd_trapframe_cache(), amd64obsd_trapframe_sniffer(), arc_make_frame_cache(), arc_skip_prologue(), arm_adjust_breakpoint_address(), arm_exidx_unwind_sniffer(), arm_scan_prologue(), arm_skip_prologue(), arm_skip_stub(), arm_stack_frame_destroyed_p_1(), arm_stub_unwind_sniffer(), avr_skip_prologue(), BP_MANIPULATION(), call0_analyze_prologue(), call0_frame_cache(), cris_skip_prologue(), csky_frame_unwind_cache(), csky_skip_prologue(), csky_stack_frame_destroyed_p(), csky_stub_unwind_sniffer(), disassemble_current_function(), elf_gnu_ifunc_resolve_addr(), find_frame_for_function(), find_func_descr(), find_function_entry_range_from_pc(), find_proc_desc(), finish_backward(), frv_linux_sigtramp_frame_sniffer(), frv_skip_prologue(), ft32_skip_prologue(), h8300_skip_prologue(), windows_per_inferior::handle_access_violation(), i386_gnu_sigtramp_p(), i386_in_stack_tramp_p(), i386_linux_dwarf_signal_frame_p(), i386_linux_sigtramp_p(), i386_sigtramp_p(), i386_skip_prologue(), i386_svr4_sigtramp_p(), i386nto_sigtramp_p(), i386obsd_sigtramp_p(), i386obsd_trapframe_cache(), i386obsd_trapframe_sniffer(), iq2000_frame_cache(), iq2000_skip_prologue(), lm32_skip_prologue(), loongarch_skip_prologue(), m32c_skip_prologue(), m32c_skip_trampoline_code(), m32c_virtual_frame_pointer(), m32r_linux_sigtramp_frame_sniffer(), m32r_skip_prologue(), m68hc11_skip_prologue(), tui_disasm_window::maybe_update(), mep_skip_prologue(), mi_cmd_disassemble(), microblaze_analyze_prologue(), microblaze_skip_prologue(), micromips_stack_frame_destroyed_p(), mips16_stack_frame_destroyed_p(), mips32_stack_frame_destroyed_p(), mips_adjust_breakpoint_address(), mips_in_frame_stub(), mips_in_return_stub(), mips_insn16_frame_cache(), mips_insn32_frame_cache(), mips_micro_frame_cache(), mips_sde_frame_cache(), mips_sde_frame_sniffer(), mips_skip_mips16_trampoline_code(), mips_skip_prologue(), mips_stub_frame_cache(), mn10300_skip_prologue(), moxie_skip_prologue(), msp430_skip_prologue(), nds32_skip_prologue(), nios2_skip_prologue(), nios2_stack_frame_destroyed_p(), nios2_stub_frame_cache(), or1k_frame_cache(), or1k_skip_prologue(), ppcfbsd_sigtramp_frame_sniffer(), ppcobsd_sigtramp_frame_sniffer(), prepare_one_step(), refine_prologue_limit(), riscv_skip_prologue(), rl78_skip_prologue(), rs6000_in_function_epilogue_frame_p(), rs6000_skip_prologue(), rx_frame_type(), rx_skip_prologue(), s12z_frame_cache(), s12z_skip_prologue(), s390_skip_prologue(), set_breakpoint_location_function(), sh_skip_prologue(), sh_stack_frame_destroyed_p(), skip_prologue_using_lineinfo(), skip_prologue_using_linetable(), skip_prologue_using_sal(), sol2_sigtramp_p(), sparc32_skip_prologue(), sparc32nbsd_sigcontext_frame_sniffer(), sparc32obsd_sigtramp_frame_sniffer(), sparc64_skip_prologue(), sparc64fbsd_sigtramp_frame_sniffer(), sparc64nbsd_sigtramp_frame_sniffer(), sparc64obsd_sigtramp_frame_sniffer(), sparc64obsd_trapframe_sniffer(), thumb_scan_prologue(), thumb_stack_frame_destroyed_p(), tic6x_skip_prologue(), tilegx_skip_prologue(), tilegx_stack_frame_destroyed_p(), v850_skip_prologue(), xstormy16_skip_prologue(), xstormy16_stack_frame_destroyed_p(), xtensa_scan_prologue(), xtensa_skip_prologue(), and z80_skip_prologue().

◆ find_pc_partial_function_sym()

bool find_pc_partial_function_sym ( CORE_ADDR pc,
const general_symbol_info ** sym,
CORE_ADDR * address,
CORE_ADDR * endaddr,
const struct block ** block = nullptr )
extern

◆ find_pc_sect_compunit_symtab()

struct compunit_symtab * find_pc_sect_compunit_symtab ( CORE_ADDR pc,
struct obj_section * section )
extern

◆ find_pc_sect_containing_function()

struct symbol * find_pc_sect_containing_function ( CORE_ADDR pc,
struct obj_section * section )
extern

◆ find_pc_sect_function()

struct symbol * find_pc_sect_function ( CORE_ADDR pc,
struct obj_section * section )
extern

◆ find_pc_sect_line()

struct symtab_and_line find_pc_sect_line ( CORE_ADDR pc,
struct obj_section * section,
int notcurrent )
extern

◆ find_pcs_for_symtab_line()

std::vector< CORE_ADDR > find_pcs_for_symtab_line ( struct symtab * symtab,
int line,
const linetable_entry ** best_entry )

◆ find_solib_trampoline_target()

CORE_ADDR find_solib_trampoline_target ( frame_info_ptr frame,
CORE_ADDR pc )
extern

◆ find_symbol_at_address()

struct symbol * find_symbol_at_address ( CORE_ADDR address)
extern

◆ fixup_symbol_section()

void fixup_symbol_section ( struct symbol * sym,
struct objfile * objfile )
extern

◆ gdb_static_assert() [1/3]

gdb_static_assert ( LOC_FINAL_VALUE<= 1<< SYMBOL_ACLASS_BITS)

◆ gdb_static_assert() [2/3]

gdb_static_assert ( NR_DOMAINS<= 1<< SYMBOL_DOMAIN_BITS)

◆ gdb_static_assert() [3/3]

gdb_static_assert ( nr_minsym_types<= 1<< MINSYM_TYPE_BITS)

◆ get_msymbol_address()

CORE_ADDR get_msymbol_address ( struct objfile * objf,
const struct minimal_symbol * minsym )
extern

◆ get_symbol_address()

CORE_ADDR get_symbol_address ( const struct symbol * sym)
extern

◆ in_gnu_ifunc_stub()

bool in_gnu_ifunc_stub ( CORE_ADDR pc)
extern

◆ info_sources_worker()

void info_sources_worker ( struct ui_out * uiout,
bool group_by_objfile,
const info_sources_filter & filter )
extern

◆ is_main_symtab_of_compunit_symtab()

static bool is_main_symtab_of_compunit_symtab ( struct symtab * symtab)
inlinestatic

Definition at line 1989 of file symtab.h.

References symtab::compunit(), and compunit_symtab::primary_filetab().

Referenced by dump_symtab_1().

◆ iterate_over_some_symtabs()

bool iterate_over_some_symtabs ( const char * name,
const char * real_path,
struct compunit_symtab * first,
struct compunit_symtab * after_last,
gdb::function_view< bool(symtab *)> callback )

◆ iterate_over_symbols()

bool iterate_over_symbols ( const struct block * block,
const lookup_name_info & name,
const domain_enum domain,
gdb::function_view< symbol_found_callback_ftype > callback )

Definition at line 2790 of file symtab.c.

References name.

Referenced by iterate_over_symbols_terminated().

◆ iterate_over_symbols_terminated()

bool iterate_over_symbols_terminated ( const struct block * block,
const lookup_name_info & name,
const domain_enum domain,
gdb::function_view< symbol_found_callback_ftype > callback )

Definition at line 2811 of file symtab.c.

References iterate_over_symbols(), and name.

Referenced by map_matching_symbols().

◆ iterate_over_symtabs()

void iterate_over_symtabs ( const char * name,
gdb::function_view< bool(symtab *)> callback )

◆ lookup_enum()

struct type * lookup_enum ( const char * name,
const struct block * block )
extern

◆ lookup_global_symbol()

struct block_symbol lookup_global_symbol ( const char * name,
const struct block * block,
const domain_enum domain )
extern

◆ lookup_global_symbol_from_objfile()

struct block_symbol lookup_global_symbol_from_objfile ( struct objfile * main_objfile,
enum block_enum block_index,
const char * name,
const domain_enum domain )
extern

◆ lookup_language_this()

struct block_symbol lookup_language_this ( const struct language_defn * lang,
const struct block * block )
extern

◆ lookup_static_symbol()

struct block_symbol lookup_static_symbol ( const char * name,
const domain_enum domain )
extern

◆ lookup_struct()

struct type * lookup_struct ( const char * name,
const struct block * block )
extern

◆ lookup_symbol()

struct block_symbol lookup_symbol ( const char * name,
const struct block * block,
const domain_enum domain,
struct field_of_this_result * is_a_field_of_this )
extern

◆ lookup_symbol_in_block()

struct symbol * lookup_symbol_in_block ( const char * name,
symbol_name_match_type match_type,
const struct block * block,
const domain_enum domain )
extern

◆ lookup_symbol_in_language()

struct block_symbol lookup_symbol_in_language ( const char * name,
const struct block * block,
const domain_enum domain,
enum language,
struct field_of_this_result * is_a_field_of_this )
extern

◆ lookup_symbol_in_static_block()

struct block_symbol lookup_symbol_in_static_block ( const char * name,
const struct block * block,
const domain_enum domain )
extern

◆ lookup_symbol_search_name()

struct block_symbol lookup_symbol_search_name ( const char * search_name,
const struct block * block,
domain_enum domain )
extern

◆ lookup_symtab()

struct symtab * lookup_symtab ( const char * name)
extern

◆ lookup_transparent_type()

struct type * lookup_transparent_type ( const char * name)
extern

Definition at line 2671 of file symtab.c.

References current_language, language_defn::lookup_transparent_type(), and name.

Referenced by check_typedef().

◆ lookup_union()

struct type * lookup_union ( const char * name,
const struct block * block )
extern

◆ main_language()

enum language main_language ( void )
extern

Definition at line 6336 of file symtab.c.

References current_program_space, find_main_name(), and get_main_info().

Referenced by set_initial_language().

◆ main_name()

const char * main_name ( )
extern

◆ make_source_files_completion_list()

completion_list make_source_files_completion_list ( const char * text,
const char * word )
extern

◆ matching_obj_sections()

bool matching_obj_sections ( struct obj_section * obj_first,
struct obj_section * obj_second )

◆ multiple_symbols_select_mode()

const char * multiple_symbols_select_mode ( void )

Definition at line 295 of file symtab.c.

References multiple_symbols_mode.

Referenced by decode_line_full(), and user_select_syms().

◆ producer_is_realview()

bool producer_is_realview ( const char * producer)

Definition at line 6350 of file symtab.c.

Referenced by dwarf2_frame_find_quirks(), prototyped_function_p(), and read_structure_type().

◆ register_symbol_block_impl()

int register_symbol_block_impl ( enum address_class aclass,
const struct symbol_block_ops * ops )
extern

◆ register_symbol_computed_impl()

int register_symbol_computed_impl ( enum address_class,
const struct symbol_computed_ops * ops )
extern

◆ register_symbol_register_impl()

int register_symbol_register_impl ( enum address_class,
const struct symbol_register_ops * ops )
extern

◆ reread_symbols()

void reread_symbols ( int from_tty)
extern

◆ resolve_sal_pc()

void resolve_sal_pc ( struct symtab_and_line * sal)
extern

◆ search_domain_name()

const char * search_domain_name ( enum search_domain)
extern

◆ search_module_symbols()

std::vector< module_symbol_search > search_module_symbols ( const char * module_regexp,
const char * regexp,
const char * type_regexp,
search_domain kind )
extern

◆ search_name_hash()

unsigned int search_name_hash ( enum language language,
const char * search_name )
extern

◆ skip_prologue_sal()

void skip_prologue_sal ( struct symtab_and_line * sal)
extern

◆ skip_prologue_using_sal()

CORE_ADDR skip_prologue_using_sal ( struct gdbarch * gdbarch,
CORE_ADDR func_addr )
extern

◆ symbol_find_demangled_name()

gdb::unique_xmalloc_ptr< char > symbol_find_demangled_name ( struct general_symbol_info * gsymbol,
const char * mangled )
extern

◆ symbol_is_function_or_method() [1/2]

bool symbol_is_function_or_method ( minimal_symbol * msymbol)
extern

◆ symbol_is_function_or_method() [2/2]

bool symbol_is_function_or_method ( symbol * sym)
extern

Definition at line 5638 of file symtab.c.

References type::code(), and symbol::type().

Referenced by completion_skip_symbol().

◆ symbol_lookup_debug_enabled()

static bool symbol_lookup_debug_enabled ( )
inlinestatic

Definition at line 2697 of file symtab.h.

References symbol_lookup_debug.

◆ symbol_lookup_debug_enabled_v()

static bool symbol_lookup_debug_enabled_v ( )
inlinestatic

Definition at line 2705 of file symtab.h.

References symbol_lookup_debug.

◆ symbol_matches_domain()

bool symbol_matches_domain ( enum language symbol_language,
domain_enum symbol_domain,
domain_enum domain )

◆ symbol_matches_search_name()

bool symbol_matches_search_name ( const struct general_symbol_info * gsymbol,
const lookup_name_info & name )
extern

◆ symbol_overlayed_address()

CORE_ADDR symbol_overlayed_address ( CORE_ADDR address,
struct obj_section * section )
extern

◆ symbol_to_info_string()

std::string symbol_to_info_string ( struct symbol * sym,
int block,
enum search_domain kind )
extern

◆ treg_matches_sym_type_name()

bool treg_matches_sym_type_name ( const compiled_regex & treg,
const struct symbol * sym )
extern

Variable Documentation

◆ basenames_may_differ

bool basenames_may_differ
extern

◆ currently_reading_symtab

int currently_reading_symtab
extern

Definition at line 179 of file symfile.c.

Referenced by check_typedef(), and increment_reading_symtab().

◆ gnu_ifunc_fns_p

const struct gnu_ifunc_fns* gnu_ifunc_fns_p
extern

Definition at line 1061 of file minsyms.c.

◆ multiple_symbols_all

const char multiple_symbols_all[]
extern

◆ multiple_symbols_ask

const char multiple_symbols_ask[]
extern

Definition at line 276 of file symtab.c.

Referenced by decode_line_full().

◆ multiple_symbols_cancel

const char multiple_symbols_cancel[]
extern

Definition at line 278 of file symtab.c.

Referenced by decode_line_2(), decode_line_full(), and user_select_syms().

◆ symbol_impls

gdb::array_view<const struct symbol_impl> symbol_impls
extern

Referenced by symbol::impl().

◆ symbol_lookup_debug

unsigned int symbol_lookup_debug
extern

◆ symtab_create_debug

unsigned int symtab_create_debug
extern

Definition at line 254 of file symtab.c.

Referenced by allocate_symtab(), and partial_symtab::partial_symtab().