Go to the documentation of this file.
9 #ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONVARIABLE_H
10 #define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONVARIABLE_H
20 #include "llvm/Support/Casting.h"
38 class ValueObjectConstResult;
85 lldb::ExpressionVariableSP var_sp;
86 for (
size_t index = 0, size =
list.GetSize(); index < size; ++index) {
87 var_sp =
list.GetVariableAtIndex(index);
90 llvm::dyn_cast<ClangExpressionVariable>(var_sp.get())) {
92 clang_var->GetParserVars(parser_id);
190 JITVarMap::iterator i =
m_jit_vars.find(parser_id);
213 #endif // LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGEXPRESSIONVARIABLE_H
MATCHES FreeBSD list(APPEND FBSDKERNEL_LIBS kvm) endif() if(NOT FBSDKERNEL_LIBS) message(STATUS "Skipping FreeBSDKernel plugin due to missing libfbsdvmcore") return() endif() add_lldb_library(lldbPluginProcessFreeBSDKernel PLUGIN ProcessFreeBSDKernel.cpp RegisterContextFreeBSDKernel_arm64.cpp RegisterContextFreeBSDKernel_i386.cpp RegisterContextFreeBSDKernel_x86_64.cpp ThreadFreeBSDKernel.cpp LINK_LIBS lldbCore lldbTarget $
void EnableJITVars(uint64_t parser_id)
Make this variable usable for materializing for the JIT by allocating space for JIT-specific variable...
The following values should not live beyond parsing.
static bool classof(const ExpressionVariable *ev)
std::map< uint64_t, ParserVars > ParserVarMap
bool PointValueAtData(Value &value, ExecutionContext *exe_ctx)
If the variable contains its own data, make a Value point at it.
void EnableParserVars(uint64_t parser_id)
Make this variable usable by the parser by allocating space for parser- specific variables.
size_t m_size
The space required for the variable, in bytes.
const ClangExpressionVariable & operator=(const ClangExpressionVariable &)=delete
ParserVars * GetParserVars(uint64_t parser_id)
Access parser-specific variables.
The following values are valid if the variable is used by JIT code.
JITVars * GetJITVars(uint64_t parser_id)
LLVMCastKind getKind() const
ClangExpressionVariable(ExecutionContextScope *exe_scope, lldb::ByteOrder byte_order, uint32_t addr_byte_size)
lldb::offset_t m_alignment
The required alignment of the variable, in bytes.
const clang::NamedDecl * m_named_decl
The Decl corresponding to this variable.
lldb_private::Value m_lldb_value
The value found in LLDB for this variable.
static ClangExpressionVariable * FindVariableInList(ExpressionVariableList &list, const clang::NamedDecl *decl, uint64_t parser_id)
Utility functions for dealing with ExpressionVariableLists in Clang- specific ways.
lldb::VariableSP m_lldb_var
The original variable for this variable.
A class that represents a running process on the host machine.
ParserVarMap m_parser_vars
llvm::Value * m_llvm_value
The IR value corresponding to this variable; usually a GlobalValue.
std::map< uint64_t, JITVars > JITVarMap
void DisableJITVars(uint64_t parser_id)
Deallocate JIT-specific variables.
void DisableParserVars(uint64_t parser_id)
Deallocate parser-specific variables.
ValueObjectProviderTy m_lldb_valobj_provider
Callback that provides a ValueObject for the specified frame.
TypeFromUser GetTypeFromUser()
ByteOrder
Byte ordering definitions.
const lldb_private::Symbol * m_lldb_sym
The original symbol for this variable, if it was a symbol.
lldb::offset_t m_offset
The offset of the variable in the struct, in bytes.