9#ifndef LLDB_EXPRESSION_LLVMUSEREXPRESSION_H
10#define LLDB_EXPRESSION_LLVMUSEREXPRESSION_H
16#include "llvm/IR/LegacyPassManager.h"
37 bool isA(
const void *ClassID)
const override {
89 std::vector<lldb::addr_t> &args,
102 std::shared_ptr<IRExecutionUnit>
"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.
Encapsulates a single expression for use in lldb.
virtual bool isA(const void *ClassID) const =0
"lldb/Expression/LLVMUserExpression.h" Encapsulates a one-time expression for use in lldb.
lldb::ExpressionResults DoExecute(DiagnosticManager &diagnostic_manager, ExecutionContext &exe_ctx, const EvaluateExpressionOptions &options, lldb::UserExpressionSP &shared_ptr_to_me, lldb::ExpressionVariableSP &result) override
std::string m_transformed_text
The text of the expression, as send to the parser.
bool m_can_interpret
True if the expression could be evaluated statically; false otherwise.
Materializer * GetMaterializer() override
Return the Materializer that the parser should use when registering external values.
std::unique_ptr< Materializer > m_materializer_up
The materializer to use when running the expression.
bool m_allow_cxx
True if the language allows C++.
virtual void ScanContext(ExecutionContext &exe_ctx, lldb_private::Status &err)=0
Target * m_target
The target for storing persistent data like types and variables.
const char * Text() override
Return the string that the parser should parse.
bool isA(const void *ClassID) const override
bool FinalizeJITExecution(DiagnosticManager &diagnostic_manager, ExecutionContext &exe_ctx, lldb::ExpressionVariableSP &result, lldb::addr_t function_stack_bottom=LLDB_INVALID_ADDRESS, lldb::addr_t function_stack_top=LLDB_INVALID_ADDRESS) override
Apply the side effects of the function to program state.
bool PrepareToExecuteJITExpression(DiagnosticManager &diagnostic_manager, ExecutionContext &exe_ctx, lldb::addr_t &struct_address)
~LLVMUserExpression() override
lldb::ModuleWP m_jit_module_wp
lldb::addr_t m_stack_frame_bottom
The bottom of the allocated stack frame.
std::shared_ptr< IRExecutionUnit > m_execution_unit_sp
The execution unit the expression is stored in.
bool m_allow_objc
True if the language allows Objective-C.
static bool classof(const Expression *obj)
bool CanInterpret() override
Materializer::DematerializerSP m_dematerializer_sp
The dematerializer.
lldb::addr_t m_stack_frame_top
The top of the allocated stack frame.
virtual bool AddArguments(ExecutionContext &exe_ctx, std::vector< lldb::addr_t > &args, lldb::addr_t struct_address, DiagnosticManager &diagnostic_manager)=0
lldb::addr_t m_materialized_address
The address at which the arguments to the expression have been materialized.
std::shared_ptr< Dematerializer > DematerializerSP
Encapsulates a one-time expression for use in lldb.
bool isA(const void *ClassID) const override
#define LLDB_INVALID_ADDRESS
A class that represents a running process on the host machine.
std::weak_ptr< lldb_private::Module > ModuleWP
std::shared_ptr< lldb_private::ExpressionVariable > ExpressionVariableSP
std::shared_ptr< lldb_private::UserExpression > UserExpressionSP
ExpressionResults
The results of expression evaluation.
std::shared_ptr< llvm::legacy::PassManager > EarlyPasses
std::shared_ptr< llvm::legacy::PassManager > LatePasses
A type-erased pair of llvm::dwarf::SourceLanguageName and version.