46 this->
branches.push_back(std::make_tuple(taken, srcAddr, dstAddr, pc));
57 if (std::get<0>(*it) ==
true)
58 return std::get<1>(*it);
66 if (std::get<0>(*it) ==
true)
67 return std::get<2>(*it);
75 if (std::get<0>(*it) ==
true)
76 return std::get<3>(*it);
The path constraint class.
TRITON_EXPORT triton::uint64 getTakenAddress(void) const
Returns the address of the taken branch.
TRITON_EXPORT void setComment(const std::string &comment)
Sets a comment to the path constraint.
TRITON_EXPORT const std::string & getComment(void) const
Returns the comment of the path constraint.
TRITON_EXPORT bool isMultipleBranches(void) const
Returns true if it is not a direct jump.
TRITON_EXPORT PathConstraint()
Constructor.
TRITON_EXPORT ~PathConstraint()
Destructor.
std::string comment
The comment of the path constraint.
TRITON_EXPORT triton::uint32 getThreadId(void) const
Returns the thread id of the constraint. Returns -1 if thread id is undefined.
triton::uint32 tid
The thread id of the constraint. -1 if it's undefined.
TRITON_EXPORT void setThreadId(triton::uint32 tid)
Sets the thread id of the constraint.
TRITON_EXPORT PathConstraint & operator=(const PathConstraint &other)
Operator.
TRITON_EXPORT triton::uint64 getSourceAddress(void) const
Returns the address of the jump instruction (eg.: "A: jz B", returns A).
TRITON_EXPORT void addBranchConstraint(bool taken, triton::uint64 srdAddr, triton::uint64 dstAddr, const triton::ast::SharedAbstractNode &pc)
Adds a branch to the path constraint.
TRITON_EXPORT triton::ast::SharedAbstractNode getTakenPredicate(void) const
Returns the predicate of the taken branch.
std::vector< std::tuple< bool, triton::uint64, triton::uint64, triton::ast::SharedAbstractNode > > branches
The branches constraints.
TRITON_EXPORT const std::vector< std::tuple< bool, triton::uint64, triton::uint64, triton::ast::SharedAbstractNode > > & getBranchConstraints(void) const
Returns the branch constraints.
The exception class used by path constraints.
std::shared_ptr< triton::ast::AbstractNode > SharedAbstractNode
Shared Abstract Node.
std::uint64_t uint64
unisgned 64-bits
std::uint32_t uint32
unisgned 32-bits