klee
|
#include <Memory.h>
Public Member Functions | |
MemoryObject (const MemoryObject &b) | |
MemoryObject & | operator= (const MemoryObject &b) |
MemoryObject (uint64_t _address) | |
MemoryObject (uint64_t _address, unsigned _size, bool _isLocal, bool _isGlobal, bool _isFixed, const llvm::Value *_allocSite, MemoryManager *_parent) | |
~MemoryObject () | |
void | getAllocInfo (std::string &result) const |
Get an identifying string for this allocation. More... | |
void | setName (std::string name) const |
ref< ConstantExpr > | getBaseExpr () const |
ref< ConstantExpr > | getSizeExpr () const |
ref< Expr > | getOffsetExpr (ref< Expr > pointer) const |
ref< Expr > | getBoundsCheckPointer (ref< Expr > pointer) const |
ref< Expr > | getBoundsCheckPointer (ref< Expr > pointer, unsigned bytes) const |
ref< Expr > | getBoundsCheckOffset (ref< Expr > offset) const |
ref< Expr > | getBoundsCheckOffset (ref< Expr > offset, unsigned bytes) const |
int | compare (const MemoryObject &b) const |
Public Attributes | |
unsigned | id |
uint64_t | address |
unsigned | size |
size in bytes More... | |
std::string | name |
bool | isLocal |
bool | isGlobal |
bool | isFixed |
bool | isUserSpecified |
MemoryManager * | parent |
const llvm::Value * | allocSite |
Private Attributes | |
class ReferenceCounter | _refCount |
Required by klee::ref-managed objects. More... | |
Static Private Attributes | |
static int | counter = 0 |
Friends | |
class | STPBuilder |
class | ObjectState |
class | ExecutionState |
class | ref< MemoryObject > |
class | ref< const MemoryObject > |
klee::MemoryObject::MemoryObject | ( | const MemoryObject & | b | ) |
|
inlineexplicit |
|
inline |
MemoryObject::~MemoryObject | ( | ) |
Definition at line 47 of file Memory.cpp.
References klee::MemoryManager::markFreed(), and parent.
|
inline |
void MemoryObject::getAllocInfo | ( | std::string & | result | ) | const |
Get an identifying string for this allocation.
Definition at line 52 of file Memory.cpp.
References allocSite, and size.
Referenced by klee::Executor::getAddressInfo().
|
inline |
Definition at line 109 of file Memory.h.
References address, klee::ConstantExpr::create(), and klee::Context::get().
Referenced by klee::Executor::allocateGlobalObjects(), klee::Executor::executeAlloc(), klee::Executor::executeCall(), getOffsetExpr(), klee::AddressSpace::resolve(), klee::Executor::runFunctionAsMain(), and klee::Executor::unwindToNextLandingpad().
Definition at line 125 of file Memory.h.
References klee::ConstantExpr::alloc(), klee::Context::get(), getSizeExpr(), and size.
Referenced by klee::Executor::executeMemoryOperation(), and getBoundsCheckPointer().
|
inline |
Definition at line 133 of file Memory.h.
References klee::ConstantExpr::alloc(), klee::Expr::Bool, klee::Context::get(), and size.
Definition at line 118 of file Memory.h.
References getBoundsCheckOffset(), and getOffsetExpr().
Referenced by klee::AddressSpace::checkPointerInObject(), and klee::Executor::executeMemoryOperation().
|
inline |
Definition at line 121 of file Memory.h.
References getBoundsCheckOffset(), and getOffsetExpr().
Definition at line 115 of file Memory.h.
References getBaseExpr().
Referenced by klee::Executor::executeMemoryOperation(), getBoundsCheckPointer(), and klee::SpecialFunctionHandler::readStringAtAddress().
|
inline |
Definition at line 112 of file Memory.h.
References klee::ConstantExpr::create(), klee::Context::get(), and size.
Referenced by getBoundsCheckOffset(), and klee::Executor::unwindToNextLandingpad().
MemoryObject & klee::MemoryObject::operator= | ( | const MemoryObject & | b | ) |
|
inline |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
uint64_t klee::MemoryObject::address |
Definition at line 49 of file Memory.h.
Referenced by klee::MemoryManager::allocateFixed(), compare(), klee::AddressSpace::copyInConcretes(), klee::AddressSpace::copyOutConcretes(), klee::Executor::executeCall(), klee::Executor::getAddressInfo(), getBaseExpr(), klee::MemoryManager::markFreed(), klee::MemoryObjectLT::operator()(), klee::AddressSpace::resolveOne(), klee::Executor::runFunctionAsMain(), and klee::MemoryManager::~MemoryManager().
const llvm::Value* klee::MemoryObject::allocSite |
"Location" for which this memory object was allocated. This should be either the allocating instruction or the global object it was allocated for (or whatever else makes sense).
Definition at line 66 of file Memory.h.
Referenced by compare(), and getAllocInfo().
bool klee::MemoryObject::isFixed |
Definition at line 57 of file Memory.h.
Referenced by klee::MemoryManager::markFreed(), and klee::MemoryManager::~MemoryManager().
|
mutable |
Definition at line 56 of file Memory.h.
Referenced by klee::Executor::executeFree().
bool klee::MemoryObject::isLocal |
Definition at line 55 of file Memory.h.
Referenced by klee::Executor::executeFree().
bool klee::MemoryObject::isUserSpecified |
Definition at line 59 of file Memory.h.
Referenced by klee::Executor::allocateGlobalObjects(), klee::AddressSpace::copyInConcretes(), and klee::AddressSpace::copyOutConcretes().
|
mutable |
Definition at line 53 of file Memory.h.
Referenced by klee::Executor::executeMakeSymbolic(), klee::SeedInfo::getNextInput(), and setName().
MemoryManager* klee::MemoryObject::parent |
Definition at line 61 of file Memory.h.
Referenced by ~MemoryObject().
unsigned klee::MemoryObject::size |
size in bytes
Definition at line 52 of file Memory.h.
Referenced by klee::MemoryManager::allocateFixed(), compare(), klee::AddressSpace::copyInConcrete(), klee::AddressSpace::copyOutConcretes(), klee::Executor::executeMakeSymbolic(), klee::Executor::executeMemoryOperation(), klee::Executor::getAddressInfo(), getAllocInfo(), getBoundsCheckOffset(), klee::SeedInfo::getNextInput(), getSizeExpr(), klee::Executor::initializeGlobalObjects(), klee::ExecutionState::merge(), klee::SpecialFunctionHandler::readStringAtAddress(), and klee::AddressSpace::resolveOne().