10#ifndef LLDB_EXPRESSION_UTILITYFUNCTION_H
11#define LLDB_EXPRESSION_UTILITYFUNCTION_H
35 bool isA(
const void *ClassID)
const override {
return ClassID == &
ID; }
49 std::string name,
bool enable_debugging);
static llvm::raw_ostream & error(Stream &strm)
Generic representation of a type in a programming language.
"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.
"lldb/Expression/ExpressionVariable.h" A list of variable references.
Encapsulates a single expression for use in lldb.
lldb::addr_t m_jit_end_addr
The address of the JITted function within the JIT allocation.
lldb::addr_t m_jit_start_addr
An expression might have a process, but it doesn't need to (e.g.
virtual bool isA(const void *ClassID) const =0
Encapsulates a function that can be called.
"lldb/Expression/UtilityFunction.h" Encapsulates a bit of source code that provides a function that i...
const char * FunctionName() override
Return the function name that should be used for executing the expression.
virtual bool Install(DiagnosticManager &diagnostic_manager, ExecutionContext &exe_ctx)=0
Install the utility function into a process.
bool NeedsVariableResolution() override
Return true if external variables in the expression should be resolved.
bool ContainsAddress(lldb::addr_t address)
Check whether the given address is inside the function.
FunctionCaller * GetFunctionCaller()
FunctionCaller * MakeFunctionCaller(const CompilerType &return_type, const ValueList &arg_value_list, lldb::ThreadSP compilation_thread, Status &error)
std::string m_function_name
The name of the function.
static bool classof(const Expression *obj)
ExpressionVariableList * LocalVariables()
Return the object that the parser should use when registering local variables.
bool NeedsValidation() override
Return true if validation code should be inserted into the expression.
~UtilityFunction() override
lldb::ModuleWP m_jit_module_wp
std::unique_ptr< FunctionCaller > m_caller_up
std::shared_ptr< IRExecutionUnit > m_execution_unit_sp
std::string m_function_text
The text of the function. Must be a well-formed translation unit.
bool isA(const void *ClassID) const override
const char * Text() override
Return the string that the parser should parse.
A class that represents a running process on the host machine.
std::weak_ptr< lldb_private::Module > ModuleWP
std::shared_ptr< lldb_private::Thread > ThreadSP