LLDB mainline
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
ValidPointerChecker Class Reference
Inheritance diagram for ValidPointerChecker:
Inheritance graph
[legend]

Public Member Functions

 ValidPointerChecker (llvm::Module &module, std::shared_ptr< UtilityFunction > checker_function)
 
 ~ValidPointerChecker () override=default
 
- Public Member Functions inherited from Instrumenter
 Instrumenter (llvm::Module &module, std::shared_ptr< UtilityFunction > checker_function)
 Constructor.
 
virtual ~Instrumenter ()=default
 
bool Inspect (llvm::Function &function)
 Inspect a function to find instructions to instrument.
 
bool Instrument ()
 Instrument all the instructions found by Inspect()
 

Protected Member Functions

bool InstrumentInstruction (llvm::Instruction *inst) override
 Add instrumentation to a single instruction.
 
bool InspectInstruction (llvm::Instruction &i) override
 Determine whether a single instruction is interesting to instrument, and, if so, call RegisterInstruction.
 
- Protected Member Functions inherited from Instrumenter
virtual bool InstrumentInstruction (llvm::Instruction *inst)=0
 Add instrumentation to a single instruction.
 
void RegisterInstruction (llvm::Instruction &inst)
 Register a single instruction to be instrumented.
 
virtual bool InspectInstruction (llvm::Instruction &i)
 Determine whether a single instruction is interesting to instrument, and, if so, call RegisterInstruction.
 
virtual bool InspectBasicBlock (llvm::BasicBlock &bb)
 Scan a basic block to see if any instructions are interesting.
 
virtual bool InspectFunction (llvm::Function &f)
 Scan a function to see if any instructions are interesting.
 
llvm::FunctionCallee BuildPointerValidatorFunc (lldb::addr_t start_address)
 Build a function pointer for a function with signature void (*)(uint8_t*) with a given address.
 
llvm::FunctionCallee BuildObjectCheckerFunc (lldb::addr_t start_address)
 Build a function pointer for a function with signature void (*)(uint8_t*, uint8_t*) with a given address.
 
PointerType * GetI8PtrTy ()
 
IntegerType * GetIntptrTy ()
 

Private Attributes

llvm::FunctionCallee m_valid_pointer_check_func
 

Additional Inherited Members

- Protected Types inherited from Instrumenter
typedef std::vector< llvm::Instruction * > InstVector
 
typedef InstVector::iterator InstIterator
 
- Protected Attributes inherited from Instrumenter
InstVector m_to_instrument
 List of instructions the inspector found.
 
llvm::Module & m_module
 The module which is being instrumented.
 
std::shared_ptr< UtilityFunctionm_checker_function
 The dynamic checker function for the process.
 

Detailed Description

Definition at line 305 of file IRDynamicChecks.cpp.

Constructor & Destructor Documentation

◆ ValidPointerChecker()

ValidPointerChecker::ValidPointerChecker ( llvm::Module &  module,
std::shared_ptr< UtilityFunction checker_function 
)
inline

Definition at line 307 of file IRDynamicChecks.cpp.

◆ ~ValidPointerChecker()

ValidPointerChecker::~ValidPointerChecker ( )
overridedefault

Member Function Documentation

◆ InspectInstruction()

bool ValidPointerChecker::InspectInstruction ( llvm::Instruction &  i)
inlineoverrideprotectedvirtual

Determine whether a single instruction is interesting to instrument, and, if so, call RegisterInstruction.

Parameters
[in]iThe instruction to be inspected.
Returns
False if there was an error scanning; true otherwise.

Reimplemented from Instrumenter.

Definition at line 340 of file IRDynamicChecks.cpp.

◆ InstrumentInstruction()

bool ValidPointerChecker::InstrumentInstruction ( llvm::Instruction *  inst)
inlineoverrideprotectedvirtual

Add instrumentation to a single instruction.

Parameters
[in]instThe instruction to be instrumented.
Returns
True on success; false otherwise.

Implements Instrumenter.

Definition at line 315 of file IRDynamicChecks.cpp.

References lldb_private::GetLog(), LLDB_LOGF, and PrintValue().

Member Data Documentation

◆ m_valid_pointer_check_func

llvm::FunctionCallee ValidPointerChecker::m_valid_pointer_check_func
private

Definition at line 348 of file IRDynamicChecks.cpp.


The documentation for this class was generated from the following file: