LLDB  mainline
Classes | Functions | Variables
IRInterpreter.cpp File Reference
#include "lldb/Expression/IRInterpreter.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Core/ValueObject.h"
#include "lldb/Expression/DiagnosticManager.h"
#include "lldb/Expression/IRExecutionUnit.h"
#include "lldb/Expression/IRMemoryMap.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/DataExtractor.h"
#include "lldb/Utility/Endian.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/Scalar.h"
#include "lldb/Utility/Status.h"
#include "lldb/Utility/StreamString.h"
#include "lldb/Target/ABI.h"
#include "lldb/Target/ExecutionContext.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Target/ThreadPlan.h"
#include "lldb/Target/ThreadPlanCallFunctionUsingABI.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/Support/raw_ostream.h"
#include <map>
Include dependency graph for IRInterpreter.cpp:

Go to the source code of this file.

Classes

class  InterpreterStackFrame
 

Functions

static std::string PrintValue (const Value *value, bool truncate=false)
 
static std::string PrintType (const Type *type, bool truncate=false)
 
static bool CanIgnoreCall (const CallInst *call)
 
static bool CanResolveConstant (llvm::Constant *constant)
 

Variables

static const char * unsupported_opcode_error
 
static const char * unsupported_operand_error
 
static const char * interpreter_internal_error
 
static const char * bad_value_error
 
static const char * memory_allocation_error
 
static const char * memory_write_error = "Interpreter couldn't write to memory"
 
static const char * memory_read_error = "Interpreter couldn't read from memory"
 
static const char * infinite_loop_error = "Interpreter ran for too many cycles"
 
static const char * too_many_functions_error
 

Function Documentation

◆ CanIgnoreCall()

static bool CanIgnoreCall ( const CallInst *  call)
static

Definition at line 72 of file IRInterpreter.cpp.

Referenced by IRInterpreter::CanInterpret(), and IRInterpreter::Interpret().

◆ CanResolveConstant()

static bool CanResolveConstant ( llvm::Constant *  constant)
static

Definition at line 450 of file IRInterpreter.cpp.

Referenced by IRInterpreter::CanInterpret().

◆ PrintType()

static std::string PrintType ( const Type *  type,
bool  truncate = false 
)
static

Definition at line 62 of file IRInterpreter.cpp.

Referenced by IRInterpreter::CanInterpret().

◆ PrintValue()

static std::string PrintValue ( const Value *  value,
bool  truncate = false 
)
static

Variable Documentation

◆ bad_value_error

const char* bad_value_error
static
Initial value:
=
"Interpreter couldn't resolve a value during execution"

Definition at line 438 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ infinite_loop_error

const char* infinite_loop_error = "Interpreter ran for too many cycles"
static

Definition at line 444 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ interpreter_internal_error

const char* interpreter_internal_error
static
Initial value:
=
"Interpreter encountered an internal error"

Definition at line 436 of file IRInterpreter.cpp.

Referenced by IRInterpreter::CanInterpret(), and IRInterpreter::Interpret().

◆ memory_allocation_error

const char* memory_allocation_error
static
Initial value:
=
"Interpreter couldn't allocate memory"

Definition at line 440 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ memory_read_error

const char* memory_read_error = "Interpreter couldn't read from memory"
static

Definition at line 443 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret(), and ObjectFileMachO::SaveCore().

◆ memory_write_error

const char* memory_write_error = "Interpreter couldn't write to memory"
static

Definition at line 442 of file IRInterpreter.cpp.

Referenced by IRInterpreter::Interpret().

◆ too_many_functions_error

const char* too_many_functions_error
static
Initial value:
=
"Interpreter doesn't handle modules with multiple function bodies."

Definition at line 447 of file IRInterpreter.cpp.

Referenced by IRInterpreter::CanInterpret().

◆ unsupported_opcode_error

const char* unsupported_opcode_error
static
Initial value:
=
"Interpreter doesn't handle one of the expression's opcodes"

Definition at line 430 of file IRInterpreter.cpp.

Referenced by IRInterpreter::CanInterpret(), and IRInterpreter::Interpret().

◆ unsupported_operand_error

const char* unsupported_operand_error
static
Initial value:
=
"Interpreter doesn't handle one of the expression's operands"

Definition at line 432 of file IRInterpreter.cpp.

Referenced by IRInterpreter::CanInterpret().