GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Functions
/tmp/gdb-13.1/gdb/block.c File Reference
#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 void block_initialize_namespace (struct block *block, struct obstack *obstack)
 
struct objfileblock_objfile (const struct block *block)
 
struct gdbarchblock_gdbarch (const struct block *block)
 
bool contained_in (const struct block *a, const struct block *b, bool allow_nested)
 
struct symbolblock_linkage_function (const struct block *bl)
 
struct symbolblock_containing_function (const struct block *bl)
 
int block_inlined_p (const struct block *bl)
 
static const struct blockfind_block_in_blockvector (const struct blockvector *bl, CORE_ADDR pc)
 
const struct blockvectorblockvector_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_sitecall_site_for_pc (struct gdbarch *gdbarch, CORE_ADDR pc)
 
const struct blockvectorblockvector_for_pc (CORE_ADDR pc, const struct block **pblock)
 
const struct blockblock_for_pc_sect (CORE_ADDR pc, struct obj_section *section)
 
const struct blockblock_for_pc (CORE_ADDR pc)
 
const char * block_scope (const struct block *block)
 
void block_set_scope (struct block *block, const char *scope, struct obstack *obstack)
 
struct using_directblock_using (const struct block *block)
 
void block_set_using (struct block *block, struct using_direct *using_decl, struct obstack *obstack)
 
const struct blockblock_static_block (const struct block *block)
 
const struct blockblock_global_block (const struct block *block)
 
struct blockallocate_block (struct obstack *obstack)
 
struct blockallocate_global_block (struct obstack *obstack)
 
void set_block_compunit_symtab (struct block *block, struct compunit_symtab *cu)
 
struct dynamic_propblock_static_link (const struct block *block)
 
static struct compunit_symtabget_block_compunit_symtab (const struct block *block)
 
static void initialize_block_iterator (const struct block *block, struct block_iterator *iter)
 
static struct compunit_symtabfind_iterator_compunit_symtab (struct block_iterator *iterator)
 
static struct symbolblock_iterator_step (struct block_iterator *iterator, int first)
 
struct symbolblock_iterator_first (const struct block *block, struct block_iterator *iterator)
 
struct symbolblock_iterator_next (struct block_iterator *iterator)
 
static struct symbolblock_iter_match_step (struct block_iterator *iterator, const lookup_name_info &name, int first)
 
struct symbolblock_iter_match_first (const struct block *block, const lookup_name_info &name, struct block_iterator *iterator)
 
struct symbolblock_iter_match_next (const lookup_name_info &name, struct block_iterator *iterator)
 
bool best_symbol (struct symbol *a, const domain_enum domain)
 
struct symbolbetter_symbol (struct symbol *a, struct symbol *b, const domain_enum domain)
 
struct symbolblock_lookup_symbol (const struct block *block, const char *name, symbol_name_match_type match_type, const domain_enum domain)
 
struct symbolblock_lookup_symbol_primary (const struct block *block, const char *name, const domain_enum domain)
 
struct symbolblock_find_symbol (const struct block *block, const char *name, const domain_enum domain, block_symbol_matcher_ftype *matcher, void *data)
 
int block_find_non_opaque_type (struct symbol *sym, void *data)
 
int block_find_non_opaque_type_preferred (struct symbol *sym, void *data)
 
struct blockrangesmake_blockranges (struct objfile *objfile, const std::vector< blockrange > &rangevec)
 

Function Documentation

◆ allocate_block()

struct block * allocate_block ( struct obstack *  obstack)

Definition at line 397 of file block.c.

Referenced by finalize_symtab(), and buildsym_compunit::finish_block_internal().

◆ allocate_global_block()

struct block * allocate_global_block ( struct obstack *  obstack)

Definition at line 407 of file block.c.

References global_block::block.

Referenced by finalize_symtab(), and buildsym_compunit::finish_block_internal().

◆ best_symbol()

bool best_symbol ( struct symbol a,
const domain_enum  domain 
)

◆ better_symbol()

struct symbol * better_symbol ( struct symbol a,
struct symbol b,
const domain_enum  domain 
)

◆ block_containing_function()

struct symbol * block_containing_function ( const struct block bl)

Definition at line 114 of file block.c.

References block::function(), and block::superblock().

Referenced by create_sals_line_offset(), and find_pc_sect_containing_function().

◆ block_find_non_opaque_type()

int block_find_non_opaque_type ( struct symbol sym,
void *  data 
)

Definition at line 856 of file block.c.

References symbol::type(), and TYPE_IS_OPAQUE.

Referenced by basic_lookup_transparent_type_1(), and basic_lookup_transparent_type_quick().

◆ block_find_non_opaque_type_preferred()

int block_find_non_opaque_type_preferred ( struct symbol sym,
void *  data 
)

Definition at line 864 of file block.c.

References symbol::type(), and TYPE_IS_OPAQUE.

Referenced by objfile::lookup_symbol().

◆ block_find_symbol()

struct symbol * block_find_symbol ( const struct block block,
const char *  name,
const domain_enum  domain,
block_symbol_matcher_ftype matcher,
void *  data 
)

◆ block_for_pc()

const struct block * block_for_pc ( CORE_ADDR  pc)

◆ block_for_pc_sect()

const struct block * block_for_pc_sect ( CORE_ADDR  pc,
struct obj_section section 
)

◆ block_gdbarch()

struct gdbarch * block_gdbarch ( const struct block block)

◆ block_global_block()

const struct block * block_global_block ( const struct block block)

◆ block_initialize_namespace()

static void block_initialize_namespace ( struct block block,
struct obstack *  obstack 
)
static

Definition at line 351 of file block.c.

References block::namespace_info(), and block::set_namespace_info().

Referenced by block_set_scope(), and block_set_using().

◆ block_inlined_p()

int block_inlined_p ( const struct block bl)

◆ block_iter_match_first()

struct symbol * block_iter_match_first ( const struct block block,
const lookup_name_info name,
struct block_iterator iterator 
)

◆ block_iter_match_next()

struct symbol * block_iter_match_next ( const lookup_name_info name,
struct block_iterator iterator 
)

◆ block_iter_match_step()

static struct symbol * block_iter_match_step ( struct block_iterator iterator,
const lookup_name_info name,
int  first 
)
static

◆ block_iterator_first()

struct symbol * block_iterator_first ( const struct block block,
struct block_iterator iterator 
)

◆ block_iterator_next()

struct symbol * block_iterator_next ( struct block_iterator iterator)

◆ block_iterator_step()

static struct symbol * block_iterator_step ( struct block_iterator iterator,
int  first 
)
static

◆ block_linkage_function()

struct symbol * block_linkage_function ( const struct block bl)

◆ block_lookup_symbol()

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

◆ block_lookup_symbol_primary()

struct symbol * block_lookup_symbol_primary ( const struct block block,
const char *  name,
const domain_enum  domain 
)

◆ block_objfile()

struct objfile * block_objfile ( const struct block block)

◆ block_scope()

const char * block_scope ( const struct block block)

◆ block_set_scope()

void block_set_scope ( struct block block,
const char *  scope,
struct obstack *  obstack 
)

◆ block_set_using()

void block_set_using ( struct block block,
struct using_direct using_decl,
struct obstack *  obstack 
)

◆ block_static_block()

const struct block * block_static_block ( const struct block block)

◆ block_static_link()

struct dynamic_prop * block_static_link ( const struct block block)

Definition at line 430 of file block.c.

References block_objfile(), block::function(), and objfile_lookup_static_link().

Referenced by get_hosting_frame().

◆ block_using()

struct using_direct * block_using ( const struct block block)

◆ blockvector_contains_pc()

int blockvector_contains_pc ( const struct blockvector bv,
CORE_ADDR  pc 
)

Definition at line 215 of file block.c.

References find_block_in_blockvector().

Referenced by recursively_find_pc_sect_compunit_symtab().

◆ blockvector_for_pc()

const struct blockvector * blockvector_for_pc ( CORE_ADDR  pc,
const struct block **  pblock 
)

Definition at line 258 of file block.c.

References blockvector_for_pc_sect(), and find_pc_mapped_section().

Referenced by block_starting_point_at().

◆ blockvector_for_pc_sect()

const struct blockvector * blockvector_for_pc_sect ( CORE_ADDR  pc,
struct obj_section section,
const struct block **  pblock,
struct compunit_symtab cust 
)

◆ call_site_for_pc()

struct call_site * call_site_for_pc ( struct gdbarch gdbarch,
CORE_ADDR  pc 
)

◆ contained_in()

bool contained_in ( const struct block a,
const struct block b,
bool  allow_nested 
)

◆ find_block_in_blockvector()

static const struct block * find_block_in_blockvector ( const struct blockvector bl,
CORE_ADDR  pc 
)
static

◆ find_iterator_compunit_symtab()

static struct compunit_symtab * find_iterator_compunit_symtab ( struct block_iterator iterator)
static

◆ get_block_compunit_symtab()

static struct compunit_symtab * get_block_compunit_symtab ( const struct block block)
static

Definition at line 445 of file block.c.

References global_block::compunit_symtab, and block::superblock().

Referenced by initialize_block_iterator().

◆ initialize_block_iterator()

static void initialize_block_iterator ( const struct block block,
struct block_iterator iter 
)
static

◆ make_blockranges()

struct blockranges * make_blockranges ( struct objfile objfile,
const std::vector< blockrange > &  rangevec 
)

Definition at line 877 of file block.c.

References blockranges::nranges, objfile::objfile_obstack, and blockranges::range.

Referenced by dwarf2_record_block_ranges().

◆ set_block_compunit_symtab()

void set_block_compunit_symtab ( struct block block,
struct compunit_symtab cu 
)