8#ifndef TRITON_PATHCONSTRAINT_H
9#define TRITON_PATHCONSTRAINT_H
56 std::vector<std::tuple<bool, triton::uint64, triton::uint64, triton::ast::SharedAbstractNode>>
branches;
81 TRITON_EXPORT
const std::vector<std::tuple<bool, triton::uint64, triton::uint64, triton::ast::SharedAbstractNode>>&
getBranchConstraints(
void)
const;
102 TRITON_EXPORT
const std::string&
getComment(
void)
const;
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.
std::shared_ptr< triton::ast::AbstractNode > SharedAbstractNode
Shared Abstract Node.
std::uint64_t uint64
unisgned 64-bits
std::uint32_t uint32
unisgned 32-bits