9#ifndef LLDB_SYMBOL_SYMBOLCONTEXT_H
10#define LLDB_SYMBOL_SYMBOLCONTEXT_H
24class SymbolContextScope;
91 void Clear(
bool clear_target);
151 const Address &so_addr,
bool show_fullpaths,
152 bool show_module,
bool show_inlined_frames,
153 bool show_function_arguments,
154 bool show_function_name)
const;
194 bool use_inline_block_range,
AddressRange &range)
const;
268 Mangled::NamePreference preference = Mangled::ePreferDemangled)
const;
301 Address &inlined_frame_addr)
const;
387 bool merge_symbol_into_function);
452 typedef std::vector<SymbolContext>
470bool operator==(
const SymbolContext &lhs,
const SymbolContext &rhs);
471bool operator!=(
const SymbolContext &lhs,
const SymbolContext &rhs);
473bool operator==(
const SymbolContextList &lhs,
const SymbolContextList &rhs);
474bool operator!=(
const SymbolContextList &lhs,
const SymbolContextList &rhs);
static llvm::raw_ostream & error(Stream &strm)
A section + offset based address range class.
A section + offset based address class.
A class that describes a single lexical block.
A class that describes a compilation unit.
A uniqued constant string class.
"lldb/Target/ExecutionContextScope.h" Inherit from this if your object can reconstruct its execution ...
A class that describes a function.
A stream class that can stream formatted output to a file.
Defines a list of symbol context objects.
collection m_symbol_contexts
The list of symbol contexts.
bool GetContextAtIndex(size_t idx, SymbolContext &sc) const
Get accessor for a symbol context at index idx.
uint32_t GetSize() const
Get accessor for a symbol context list size.
SymbolContext & operator[](size_t idx)
Direct reference accessor for a symbol context at index idx.
const_iterator begin() const
void GetDescription(Stream *s, lldb::DescriptionLevel level, Target *target) const
const_iterator end() const
bool RemoveContextAtIndex(size_t idx)
bool AppendIfUnique(const SymbolContext &sc, bool merge_symbol_into_function)
void Dump(Stream *s, Target *target) const
Dump a description of this object to a Stream.
uint32_t NumLineEntriesWithLine(uint32_t line) const
~SymbolContextList()
Destructor.
collection::const_iterator const_iterator
void Append(const SymbolContext &sc)
Append a new symbol context to the list.
AdaptedIterable< collection, SymbolContext, vector_adapter > SymbolContextIterable
const SymbolContext & operator[](size_t idx) const
SymbolContextIterable SymbolContexts()
void Clear()
Clear the object's state.
std::vector< SymbolContext > collection
The collection type for the list.
SymbolContextList()
Default constructor.
"lldb/Symbol/SymbolContextScope.h" Inherit from this if your object is part of a symbol context and c...
void GetDescription(Stream *s, lldb::DescriptionLevel level) const
bool AddressMatches(lldb::addr_t addr)
lldb::ModuleSP m_module_sp
std::unique_ptr< AddressRange > m_address_range_up
std::unique_ptr< FileSpec > m_file_spec_up
~SymbolContextSpecifier()
std::string m_module_spec
bool AddLineSpecification(uint32_t line_no, SpecificationType type)
@ eClassOrNamespaceSpecified
bool AddSpecification(const char *spec_string, SpecificationType type)
lldb::TargetSP m_target_sp
std::string m_function_spec
bool SymbolContextMatches(const SymbolContext &sc)
Defines a symbol context baton that can be handed other debug core functions.
LineEntry GetFunctionStartLineEntry() const
Get the line entry that corresponds to the function.
const Symbol * FindBestGlobalDataSymbol(ConstString name, Status &error)
Find the best global data symbol visible from this context.
lldb::LanguageType GetLanguage() const
void Dump(Stream *s, Target *target) const
Dump a description of this object to a Stream.
bool DumpStopContext(Stream *s, ExecutionContextScope *exe_scope, const Address &so_addr, bool show_fullpaths, bool show_module, bool show_inlined_frames, bool show_function_arguments, bool show_function_name) const
Dump the stop context in this object to a Stream.
Function * function
The Function for a given query.
Block * GetFunctionBlock()
Find a block that defines the function represented by this symbol context.
llvm::StringRef GetInstanceVariableName()
Determines the name of the instance variable for the this decl context.
bool GetParentOfInlinedScope(const Address &curr_frame_pc, SymbolContext &next_frame_sc, Address &inlined_frame_addr) const
Find the block containing the inlined block that contains this block.
ConstString GetFunctionName(Mangled::NamePreference preference=Mangled::ePreferDemangled) const
Find a name of the innermost function for the symbol context.
void SortTypeList(TypeMap &type_map, TypeList &type_list) const
Sorts the types in TypeMap according to SymbolContext to TypeList.
Block * block
The Block for a given query.
lldb::ModuleSP module_sp
The Module for a given query.
CompileUnit * comp_unit
The CompileUnit for a given query.
uint32_t GetResolvedMask() const
void Clear(bool clear_target)
Clear the object's state.
Variable * variable
The global variable matching the given query.
bool GetAddressRange(uint32_t scope, uint32_t range_idx, bool use_inline_block_range, AddressRange &range) const
Get the address range contained within a symbol context.
Symbol * symbol
The Symbol for a given query.
lldb::TargetSP target_sp
The Target for a given query.
LineEntry line_entry
The LineEntry for a given query.
void GetDescription(Stream *s, lldb::DescriptionLevel level, Target *target) const
SymbolContext(const lldb::TargetSP &target_sp, const lldb::ModuleSP &module_sp, CompileUnit *comp_unit=nullptr, Function *function=nullptr, Block *block=nullptr, LineEntry *line_entry=nullptr, Symbol *symbol=nullptr)
Construct with module, and optional compile unit, function, block, line table, line entry and symbol.
bool GetAddressRangeFromHereToEndLine(uint32_t end_line, AddressRange &range, Status &error)
SymbolContext(const lldb::ModuleSP &module_sp, CompileUnit *comp_unit=nullptr, Function *function=nullptr, Block *block=nullptr, LineEntry *line_entry=nullptr, Symbol *symbol=nullptr)
SymbolContext()
Default constructor.
A class that represents a running process on the host machine.
bool operator!=(const Address &lhs, const Address &rhs)
bool operator==(const Address &lhs, const Address &rhs)
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.
LanguageType
Programming language type.
A line table entry class.