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/SymbolicExpr.h>
10 namespace BinaryAnalysis {
26 using Ptr = InputVariablesPtr;
31 SymbolicExpr::ExprExprHashMap bindings_;
41 static Ptr instance();
54 const SymbolicExpr::ExprExprHashMap& bindings()
const;
62 ExecutionEventPtr event(
const std::string &variableName)
const;
63 ExecutionEventPtr event(
const SymbolicExprPtr &
variable)
const;
93 void deactivate(
const ExecutionEventPtr&);
100 void playback(
const ExecutionEventPtr&);
106 void unplayback(
const ExecutionEventPtr&);
112 void print(std::ostream&,
const std::string &prefix =
"")
const;
139 void undefine(
const ExecutionEventPtr&);
147 void bind(
const ExecutionEventPtr&);
158 void unbind(
const ExecutionEventPtr&);
168 void bindVariableValue(
const SymbolicExprPtr &
variable,
const SymbolicExprPtr &value);
174 void unbindVariableValue(
const SymbolicExprPtr &
variable);
Sawyer::SharedPointer< Node > Ptr
Shared-ownership pointer to an expression Node.
void print(const StackVariables &, const Partitioner2::Partitioner &, std::ostream &out, const std::string &prefix="")
Print info about multiple local variables.
Main namespace for the ROSE library.
Base class for reference counted objects.
const size_t INVALID_INDEX(-1)
Invalid array index.
Container associating values with keys.
std::shared_ptr< class SmtSolver > SmtSolverPtr
Reference-counting pointer for SMT solvers.