1#ifndef ROSE_BinaryAnalysis_Concolic_SystemCall_H 
    2#define ROSE_BinaryAnalysis_Concolic_SystemCall_H 
    3#include <featureTests.h> 
    4#ifdef ROSE_ENABLE_CONCOLIC_TESTING 
    6#include <Rose/BinaryAnalysis/Concolic/BasicTypes.h> 
    7#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h> 
    8#include <Rose/BinaryAnalysis/SymbolicExpression.h> 
   10#include <Sawyer/Optional.h> 
   11#include <Sawyer/SharedObject.h> 
   14namespace BinaryAnalysis {
 
   26    SyscallContext() = 
delete;
 
   29    SyscallContext(
const ArchitecturePtr&, 
const ExecutionEventPtr &syscallEvent,
 
   30                   const std::vector<ExecutionEventPtr> &relatedEvents);
 
   33    SyscallContext(
const ArchitecturePtr&, 
const Emulation::RiscOperatorsPtr&,
 
   34                   const ExecutionEventPtr &syscallEvent);
 
   36    virtual ~SyscallContext();
 
   51    ArchitecturePtr architecture;
 
   56    Emulation::RiscOperatorsPtr 
ops;
 
   68    std::vector<uint64_t> argsConcrete;
 
   75    ExecutionEventPtr syscallEvent;
 
   92    std::vector<ExecutionEventPtr> relatedEvents;
 
  104    ExecutionEventPtr returnEvent;
 
  111    SymbolicExpression::Ptr symbolicReturn;
 
  122    using Ptr = SyscallCallbackPtr;
 
  125    virtual ~SyscallCallback() {}
 
  131    virtual bool operator()(
bool handled, SyscallContext&) = 0;
 
  136    void hello(
const std::string &myName, 
const SyscallContext&) 
const;
 
  139    void notAnInput(SyscallContext&, 
const ExecutionEventPtr&) 
const;
 
Base class for reference counted objects.
 
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
 
std::uint64_t Address
Address.
 
const char * ConcolicPhase(int64_t)
Convert Rose::BinaryAnalysis::Concolic::ConcolicPhase enum constant to a string.
 
const char * ops(int64_t)
Convert ops enum constant to a string.