Go to the documentation of this file.
9 #ifndef LLDB_SYMBOL_BLOCK_H
10 #define LLDB_SYMBOL_BLOCK_H
71 void AddChild(
const lldb::BlockSP &child_block_sp);
139 bool show_context)
const;
236 bool stop_if_child_block_is_inlined_function,
237 const std::function<
bool(
Variable *)> &filter,
267 bool stop_if_block_is_inlined_function,
268 const std::function<
bool(
Variable *)> &filter,
387 #endif // LLDB_SYMBOL_BLOCK_H
Block * FindInnermostBlockByOffset(const lldb::addr_t offset)
bool GetRangeContainingAddress(const Address &addr, AddressRange &range)
Provides public interface for all SymbolFiles.
lldb::VariableListSP m_variable_list_sp
The variable list for all local, static and parameter variables scoped to this block.
lldb::VariableListSP GetBlockVariableList(bool can_create)
Get the variable list for this block only.
void SetBlockInfoHasBeenParsed(bool b, bool set_children)
Block * GetSibling() const
Get the sibling block for this block.
void SetParentScope(SymbolContextScope *parent_scope)
RangeVector< uint32_t, uint32_t, 1 > RangeList
Block * GetParent() const
Get the parent block.
Block(lldb::user_id_t uid)
Construct with a User ID uid, depth.
bool m_parsed_child_blocks
Block * GetSiblingForChild(const Block *child_block) const
CompileUnit * CalculateSymbolContextCompileUnit() override
SymbolFile * GetSymbolFile()
Get the symbol file which contains debug info for this block's symbol context module.
bool BlockInfoHasBeenParsed() const
Block * CalculateSymbolContextBlock() override
bool m_parsed_block_info
Set to true if this block and it's children have all been parsed.
void AddRange(const Range &range)
Add a new offset range to this block.
void AddChild(const lldb::BlockSP &child_block_sp)
Add a child to this object.
Function * CalculateSymbolContextFunction() override
Block * GetInlinedParent()
Get the inlined parent block for this block.
lldb::ModuleSP CalculateSymbolContextModule() override
lldb::InlineFunctionInfoSP m_inlineInfoSP
Inlined function information.
size_t MemorySize() const
Get the memory cost of this object.
bool m_parsed_block_variables
uint32_t AppendBlockVariables(bool can_create, bool get_child_block_variables, bool stop_if_child_block_is_inlined_function, const std::function< bool(Variable *)> &filter, VariableList *variable_list)
Get the variable list for this block and optionally all child blocks if get_child_variables is true.
void SetInlinedFunctionInfo(const char *name, const char *mangled, const Declaration *decl_ptr, const Declaration *call_decl_ptr)
Set accessor for any inlined function information.
Block * GetContainingInlinedBlockWithCallSite(const Declaration &find_call_site)
Get the inlined block at the given call site that contains this block.
Represents a generic declaration context in a program.
const Block & operator=(const Block &)=delete
uint32_t AppendVariables(bool can_create, bool get_parent_variables, bool stop_if_block_is_inlined_function, const std::function< bool(Variable *)> &filter, VariableList *variable_list)
Appends the variables from this block, and optionally from all parent blocks, to variable_list.
Block * GetFirstChild() const
Get the first child block.
void SetVariableList(lldb::VariableListSP &variable_list_sp)
Set accessor for the variable list.
Range< uint32_t, uint32_t > Entry
bool Contains(lldb::addr_t range_offset) const
Check if an offset is in one of the block offset ranges.
CompilerDeclContext GetDeclContext()
bool GetRangeContainingOffset(const lldb::addr_t offset, Range &range)
bool GetRangeAtIndex(uint32_t range_idx, AddressRange &range)
SymbolContextScope * m_parent_scope
void SetDidParseVariables(bool b, bool set_children)
bool GetRangeContainingLoadAddress(lldb::addr_t load_addr, Target &target, AddressRange &range)
uint32_t GetRangeIndexContainingAddress(const Address &addr)
void GetDescription(Stream *s, Function *function, lldb::DescriptionLevel level, Target *target) const
A class that represents a running process on the host machine.
Block * FindBlockByID(lldb::user_id_t block_id)
bool GetStartAddress(Address &addr)
void DumpSymbolContext(Stream *s) override
Dump the object's symbol context to the stream s.
std::vector< lldb::BlockSP > collection
const InlineFunctionInfo * GetInlinedFunctionInfo() const
Get const accessor for any inlined function information.
void DumpAddressRanges(Stream *s, lldb::addr_t base_addr)
size_t GetNumRanges() const
void CalculateSymbolContext(SymbolContext *sc) override
Reconstruct the object's symbol context into sc.
Block * GetContainingInlinedBlock()
Get the inlined block that contains this block.
~Block() override
Destructor.
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.
void Dump(Stream *s, lldb::addr_t base_addr, int32_t depth, bool show_context) const
Dump the block contents.