GDB (xrefs)
|
#include "defs.h"
#include "block.h"
#include "symtab.h"
#include "symfile.h"
#include "gdbsupport/gdb_obstack.h"
#include "cp-support.h"
#include "addrmap.h"
#include "gdbtypes.h"
#include "objfiles.h"
Go to the source code of this file.
Classes | |
struct | block_namespace_info |
Functions | |
static const struct block * | find_block_in_blockvector (const struct blockvector *bl, CORE_ADDR pc) |
const struct blockvector * | blockvector_for_pc_sect (CORE_ADDR pc, struct obj_section *section, const struct block **pblock, struct compunit_symtab *cust) |
int | blockvector_contains_pc (const struct blockvector *bv, CORE_ADDR pc) |
struct call_site * | call_site_for_pc (struct gdbarch *gdbarch, CORE_ADDR pc) |
const struct blockvector * | blockvector_for_pc (CORE_ADDR pc, const struct block **pblock) |
const struct block * | block_for_pc_sect (CORE_ADDR pc, struct obj_section *section) |
const struct block * | block_for_pc (CORE_ADDR pc) |
static struct compunit_symtab * | get_block_compunit_symtab (const struct block *block) |
static void | initialize_block_iterator (const struct block *block, struct block_iterator *iter, const lookup_name_info *name=nullptr) |
static struct compunit_symtab * | find_iterator_compunit_symtab (struct block_iterator *iterator) |
static struct symbol * | block_iterator_step (struct block_iterator *iterator, int first) |
static struct symbol * | block_iter_match_step (struct block_iterator *iterator, int first) |
struct symbol * | block_iterator_first (const struct block *block, struct block_iterator *iterator, const lookup_name_info *name) |
struct symbol * | block_iterator_next (struct block_iterator *iterator) |
bool | best_symbol (struct symbol *a, const domain_enum domain) |
struct symbol * | better_symbol (struct symbol *a, struct symbol *b, const domain_enum domain) |
struct symbol * | block_lookup_symbol (const struct block *block, const char *name, symbol_name_match_type match_type, const domain_enum domain) |
struct symbol * | block_lookup_symbol_primary (const struct block *block, const char *name, const domain_enum domain) |
struct symbol * | block_find_symbol (const struct block *block, const lookup_name_info &name, const domain_enum domain, struct symbol **stub) |
struct blockranges * | make_blockranges (struct objfile *objfile, const std::vector< blockrange > &rangevec) |
bool best_symbol | ( | struct symbol * | a, |
const domain_enum | domain ) |
Definition at line 633 of file block.c.
References symbol::aclass(), symbol::domain(), and LOC_UNRESOLVED.
Referenced by block_lookup_symbol(), block_lookup_symbol_primary(), lookup_global_symbol(), lookup_minimal_symbol_by_pc_section(), and lookup_symbol_in_objfile_symtabs().
struct symbol * better_symbol | ( | struct symbol * | a, |
struct symbol * | b, | ||
const domain_enum | domain ) |
Definition at line 642 of file block.c.
References symbol::aclass(), symbol::domain(), and LOC_UNRESOLVED.
Referenced by block_lookup_symbol(), block_lookup_symbol_primary(), lookup_global_symbol(), and lookup_symbol_in_objfile_symtabs().
struct symbol * block_find_symbol | ( | const struct block * | block, |
const lookup_name_info & | name, | ||
const domain_enum | domain, | ||
struct symbol ** | stub ) |
Definition at line 794 of file block.c.
References symbol::domain(), name, block::superblock(), and TYPE_IS_OPAQUE.
Referenced by basic_lookup_transparent_type_1(), basic_lookup_transparent_type_quick(), and objfile::lookup_symbol().
const struct block * block_for_pc | ( | CORE_ADDR | pc | ) |
Definition at line 276 of file block.c.
References block_for_pc_sect(), and find_pc_mapped_section().
Referenced by collection_list::add_local_symbols(), agent_eval_command_one(), create_breakpoint(), csky_frame_unwind_cache(), do_compile_dwarf_expr_to_c(), expr::op_this_operation::do_generate_ax(), dwarf2_compile_expr_to_ax(), dwarf2_find_location_expression(), encode_actions_1(), eval_op_func_static_var(), eval_op_objc_msgcall(), find_condition_and_thread(), find_proc_desc(), frame_id_inner(), gdbscm_lookup_block(), gen_maybe_namespace_elt(), get_frame_block(), get_pc_function_start(), info_scope_command(), inline_frame_sniffer(), locexpr_describe_location_piece(), parse_cmd_to_aexpr(), pspy_block_for_pc(), ada_catchpoint::re_set(), set_breakpoint_condition(), set_breakpoint_location_condition(), skip_inline_frames(), skip_prologue_using_sal(), update_breakpoint_locations(), and validate_actionline().
const struct block * block_for_pc_sect | ( | CORE_ADDR | pc, |
struct obj_section * | section ) |
Definition at line 261 of file block.c.
References blockvector_for_pc_sect().
Referenced by block_for_pc(), create_sals_line_offset(), find_pc_sect_containing_function(), find_pc_sect_function(), and skip_prologue_sal().
|
static |
Definition at line 549 of file block.c.
References blockvector::block(), compunit_symtab::blockvector(), find_iterator_compunit_symtab(), FIRST_LOCAL_BLOCK, block_iterator::idx, block_iterator::mdict_iter, mdict_iter_match_first(), mdict_iter_match_next(), block::multidict(), block_iterator::name, and block_iterator::which.
Referenced by block_iterator_first(), and block_iterator_next().
struct symbol * block_iterator_first | ( | const struct block * | block, |
struct block_iterator * | iterator, | ||
const lookup_name_info * | name ) |
Definition at line 589 of file block.c.
References block_iter_match_step(), block_iterator_step(), FIRST_LOCAL_BLOCK, initialize_block_iterator(), block_iterator::mdict_iter, mdict_iter_match_first(), mdict_iterator_first(), block::multidict(), name, and block_iterator::which.
Referenced by blpy_block_syms_iternext(), and gdbscm_block_next_symbol_x().
struct symbol * block_iterator_next | ( | struct block_iterator * | iterator | ) |
Definition at line 614 of file block.c.
References block_iter_match_step(), block_iterator_step(), FIRST_LOCAL_BLOCK, block_iterator::mdict_iter, mdict_iter_match_next(), mdict_iterator_next(), block_iterator::name, and block_iterator::which.
Referenced by blpy_block_syms_iternext(), gdbscm_block_next_symbol_x(), and block_iterator_wrapper::operator++().
|
static |
Definition at line 508 of file block.c.
References blockvector::block(), compunit_symtab::blockvector(), find_iterator_compunit_symtab(), FIRST_LOCAL_BLOCK, block_iterator::idx, block_iterator::mdict_iter, mdict_iterator_first(), mdict_iterator_next(), block::multidict(), and block_iterator::which.
Referenced by block_iterator_first(), and block_iterator_next().
struct symbol * block_lookup_symbol | ( | const struct block * | block, |
const char * | name, | ||
symbol_name_match_type | match_type, | ||
const domain_enum | domain ) |
Definition at line 676 of file block.c.
References best_symbol(), better_symbol(), symbol::domain(), block::function(), and name.
Referenced by get_out_value_type(), lookup_language_this(), lookup_symbol_in_block(), lookup_symbol_via_quick_fns(), and maintenance_check_psymtabs().
struct symbol * block_lookup_symbol_primary | ( | const struct block * | block, |
const char * | name, | ||
const domain_enum | domain ) |
Definition at line 732 of file block.c.
References best_symbol(), better_symbol(), FULL, symbol::matches(), mdict_iter_match_first(), mdict_iter_match_next(), block::multidict(), name, and block::superblock().
Referenced by lookup_symbol_in_objfile_symtabs().
int blockvector_contains_pc | ( | const struct blockvector * | bv, |
CORE_ADDR | pc ) |
Definition at line 208 of file block.c.
References find_block_in_blockvector().
Referenced by recursively_find_pc_sect_compunit_symtab().
const struct blockvector * blockvector_for_pc | ( | CORE_ADDR | pc, |
const struct block ** | pblock ) |
Definition at line 251 of file block.c.
References blockvector_for_pc_sect(), and find_pc_mapped_section().
Referenced by block_starting_point_at().
const struct blockvector * blockvector_for_pc_sect | ( | CORE_ADDR | pc, |
struct obj_section * | section, | ||
const struct block ** | pblock, | ||
struct compunit_symtab * | cust ) |
Definition at line 178 of file block.c.
References compunit_symtab::blockvector(), find_block_in_blockvector(), and find_pc_sect_compunit_symtab().
Referenced by block_for_pc_sect(), blockvector_for_pc(), and resolve_sal_pc().
Definition at line 218 of file block.c.
References compunit_symtab::find_call_site(), find_pc_compunit_symtab(), lookup_minimal_symbol_by_pc(), bound_minimal_symbol::minsym, paddress(), and general_symbol_info::print_name().
Referenced by call_site_find_chain_1(), and dwarf_expr_reg_to_entry_parameter().
|
static |
Definition at line 127 of file block.c.
References blockvector::block(), blockvector::blocks(), block::end(), addrmap::find(), blockvector::map(), block::start(), and STATIC_BLOCK.
Referenced by blockvector_contains_pc(), and blockvector_for_pc_sect().
|
static |
Definition at line 496 of file block.c.
References block_iterator::compunit_symtab, block_iterator::d, block_iterator::idx, and compunit_symtab::includes.
Referenced by block_iter_match_step(), and block_iterator_step().
|
static |
Definition at line 423 of file block.c.
References global_block::compunit_symtab, and block::superblock().
Referenced by initialize_block_iterator().
|
static |
Definition at line 440 of file block.c.
References block_iterator::block, block_iterator::compunit_symtab, block_iterator::d, FIRST_LOCAL_BLOCK, get_block_compunit_symtab(), GLOBAL_BLOCK, block_iterator::idx, compunit_symtab::includes, name, block_iterator::name, STATIC_BLOCK, block::superblock(), compunit_symtab::user, and block_iterator::which.
Referenced by block_iterator_first().
struct blockranges * make_blockranges | ( | struct objfile * | objfile, |
const std::vector< blockrange > & | rangevec ) |
Definition at line 818 of file block.c.
References blockranges::nranges, objfile::objfile_obstack, and blockranges::range.
Referenced by dwarf2_record_block_ranges().