The BAP Microexecution Framework

Interface to generic systems

Generic systems are not specialized to the Knowledge monad and could be run on any instance of the Primus monad.

Unlike the specialized run function the generic run function is a functor parameterized by a monad and returns a value wrapped into that monad.



val run : ?envp:string array -> ?args:string array -> ?init:unit Machine.t -> ?fini:unit Machine.t -> ?start:unit Machine.t -> t -> Bap.Std.project -> (exit_status * Bap.Std.project) Machine.m

run system project runs the system on the specified project.

  • parameter envp

    an array of environment variables that are passed to the program;

  • parameter args

    an array of program parameters, with the first element of array being the program name

  • parameter init

    is a computation that will be run just after the system is initialized but before the init observation is posted.

  • parameter start

    is a computation that is evaluated just after the System.start observation is posted.