1 #ifndef ROSE_BinaryAnalysis_Concolic_InputVariables_H
2 #define ROSE_BinaryAnalysis_Concolic_InputVariables_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_CONCOLIC_TESTING
5 #include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
7 #include <Rose/BinaryAnalysis/SymbolicExpression.h>
10 namespace BinaryAnalysis {
27 using Ptr = InputVariablesPtr;
32 SymbolicExpression::ExprExprHashMap bindings_;
42 static Ptr instance();
55 const SymbolicExpression::ExprExprHashMap& bindings()
const;
63 ExecutionEventPtr event(
const std::string &variableName)
const;
64 ExecutionEventPtr event(
const SymbolicExpressionPtr &
variable)
const;
94 void deactivate(
const ExecutionEventPtr&);
101 void playback(
const ExecutionEventPtr&);
107 void unplayback(
const ExecutionEventPtr&);
113 void print(std::ostream&,
const std::string &prefix =
"")
const;
140 void undefine(
const ExecutionEventPtr&);
148 void bind(
const ExecutionEventPtr&);
159 void unbind(
const ExecutionEventPtr&);
169 void bindVariableValue(
const SymbolicExpressionPtr &
variable,
const SymbolicExpressionPtr &value);
175 void unbindVariableValue(
const SymbolicExpressionPtr &
variable);
Main namespace for the ROSE library.
void print(const StackVariables &, const Partitioner2::PartitionerConstPtr &, std::ostream &out, const std::string &prefix="")
Print info about multiple local variables.
Base class for reference counted objects.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
std::shared_ptr< SmtSolver > SmtSolverPtr
Reference counting pointer.
Container associating values with keys.
const size_t INVALID_INDEX(static_cast< size_t >(-1))
Invalid array index.