9#ifndef LLDB_SYMBOL_VARIABLE_H
10#define LLDB_SYMBOL_VARIABLE_H
25class Variable :
public UserID,
public std::enable_shared_from_this<Variable> {
36 bool external,
bool artificial,
bool location_is_constant_data,
37 bool static_member =
false);
A section + offset based address class.
Represents a generic declaration context in a program.
Represents a generic declaration such as a function declaration.
"lldb/Utility/ArgCompletionRequest.h"
A uniqued constant string class.
"lldb/Expression/DWARFExpressionList.h" Encapsulates a range map from file address range to a single ...
A class that describes the declaration location of a lldb object.
"lldb/Target/ExecutionContextScope.h" Inherit from this if your object can reconstruct its execution ...
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
A class that handles mangled names.
This base class provides an interface to stack frames.
A stream class that can stream formatted output to a file.
"lldb/Symbol/SymbolContextScope.h" Inherit from this if your object is part of a symbol context and c...
Defines a symbol context baton that can be handed other debug core functions.
A collection of ValueObject values that.
bool DumpDeclaration(Stream *s, bool show_fullpaths, bool show_module)
const RangeList & GetScopeRange() const
DWARFExpressionList & LocationExpressionList()
unsigned m_static_member
Non-zero if variable is static member of a class or struct.
bool IsInScope(StackFrame *frame)
SymbolContextScope * GetSymbolContextScope() const
static void AutoComplete(const ExecutionContext &exe_ctx, CompletionRequest &request)
CompilerDeclContext GetDeclContext()
unsigned m_artificial
Non-zero if the variable is not explicitly declared in source.
unsigned m_external
Visible outside the containing compile unit?
bool LocationIsValidForAddress(const Address &address)
unsigned m_loc_is_const_data
The m_location expression contains the constant variable value data, not a DWARF location.
const Declaration & GetDeclaration() const
lldb::SymbolFileTypeSP m_symfile_type_sp
The type pointer of the variable (int, struct, class, etc) global, parameter, local.
Variable(const Variable &rhs)=delete
RangeList m_scope_range
The list of ranges inside the owner's scope where this variable is valid.
ConstString GetUnqualifiedName() const
static Status GetValuesForVariableExpressionPath(llvm::StringRef variable_expr_path, ExecutionContextScope *scope, GetVariableCallback callback, void *baton, VariableList &variable_list, ValueObjectList &valobj_list)
Mangled m_mangled
The mangled name of the variable.
bool NameMatches(ConstString name) const
Since a variable can have a basename "i" and also a mangled named "_ZN12_GLOBAL__N_11iE" and a demang...
void Dump(Stream *s, bool show_context) const
SymbolContextScope * m_owner_scope
The symbol file scope that this variable was defined in.
ConstString GetName() const
ConstString m_name
The basename of the variable (no namespaces).
RangeVector< lldb::addr_t, lldb::addr_t > RangeList
const DWARFExpressionList & LocationExpressionList() const
Declaration m_declaration
Declaration location for this item.
void CalculateSymbolContext(SymbolContext *sc)
void SetLocationIsConstantValueData(bool b)
bool GetLocationIsConstantValueData() const
bool DumpLocations(Stream *s, const Address &address)
Variable & operator=(const Variable &rhs)=delete
lldb::LanguageType GetLanguage() const
size_t MemorySize() const
bool IsStaticMember() const
bool IsArtificial() const
bool LocationIsValidForFrame(StackFrame *frame)
size_t(* GetVariableCallback)(void *baton, const char *name, VariableList &var_list)
DWARFExpressionList m_location_list
The location of this variable that can be fed to DWARFExpression::Evaluate().
lldb::ValueType GetScope() const
A class that represents a running process on the host machine.
LanguageType
Programming language type.
std::shared_ptr< lldb_private::SymbolFileType > SymbolFileTypeSP
A mix in class that contains a generic user ID.