Go to the documentation of this file.
10 #ifndef LLDB_EXPRESSION_UTILITYFUNCTION_H
11 #define LLDB_EXPRESSION_UTILITYFUNCTION_H
35 bool isA(
const void *ClassID)
const override {
return ClassID == &
ID; }
106 lldb::ThreadSP compilation_thread,
125 #endif // LLDB_EXPRESSION_UTILITYFUNCTION_H
FunctionCaller * GetFunctionCaller()
const char * Text() override
Return the string that the parser should parse.
bool NeedsValidation() override
Return true if validation code should be inserted into the expression.
lldb::ModuleWP m_jit_module_wp
std::string m_function_name
The name of the function.
lldb::addr_t m_jit_start_addr
An expression might have a process, but it doesn't need to (e.g.
virtual bool Install(DiagnosticManager &diagnostic_manager, ExecutionContext &exe_ctx)=0
Install the utility function into a process.
ExpressionVariableList * LocalVariables()
Return the object that the parser should use when registering local variables.
virtual bool isA(const void *ClassID) const =0
FunctionCaller * MakeFunctionCaller(const CompilerType &return_type, const ValueList &arg_value_list, lldb::ThreadSP compilation_thread, Status &error)
static llvm::raw_ostream & error(Stream &strm)
lldb::addr_t m_jit_end_addr
The address of the JITted function within the JIT allocation.
UtilityFunction(ExecutionContextScope &exe_scope, std::string text, std::string name, bool enable_debugging)
Constructor.
std::shared_ptr< IRExecutionUnit > m_execution_unit_sp
string(SUBSTRING ${p} 10 -1 pStripped) if($
~UtilityFunction() override
static bool classof(const Expression *obj)
bool ContainsAddress(lldb::addr_t address)
Check whether the given address is inside the function.
std::unique_ptr< FunctionCaller > m_caller_up
std::string m_function_text
The text of the function. Must be a well-formed translation unit.
bool isA(const void *ClassID) const override
Generic representation of a type in a programming language.
A class that represents a running process on the host machine.
const char * FunctionName() override
Return the function name that should be used for executing the expression.
bool NeedsVariableResolution() override
Return true if external variables in the expression should be resolved.