Process Monitor
The Process monitor controls a process during a fuzzing run. It has a number of features:
-
Restart a process when it dies
-
Log a fault if a process exits early
-
Restart a process on every iteration
-
Terminate a process is the cpu usage is low
-
Interact with StateModel to allow waiting for process exit
-
Interact with StateModel to allow for delayed starting of a process
Parameters
-
Executable — Executable to launch
-
Arguments — Command line arguments (optional)
-
RestartOnEachTest — Restart process on each iteration (optional, defaults to false)
-
FaultOnEarlyExit — Trigger fault if process exits (optional, defaults to false)
-
NoCpuKill — Disable process killing when CPU usage nears zero (optional, defaults to false)
-
StartOnCall — Start process on a call action from the StateModel (this value and the method value must match), (optional)
-
WaitForExitOnCall — Wait for process to exit on state model call (this value and the method value must match), (optional)
-
WaitForExitTimeout — Wait timeout value. Triggers fault when timeout hit. (optional, default disabled)
Examples
<Agent name="Local">
<Monitor class="Process">
<Param name="Executable" value="notepad.exe" />
<Param name="Arguments" value="README.txt" />
</Monitor>
</Agent>
<Agent name="Local">
<Monitor class="Process">
<Param name="Executable" value="notepad.exe" />
<Param name="Arguments" value="README.txt" />
<Param name="RestartOnEachTest" value="true" />
</Monitor>
</Agent>
<StateModel name="TheStateModel">
<State name="initial">
<Action type="call" method="ScoobySnacks" />
</State>
</StateModel>
<Agent name="Local">
<Monitor class="Process">
<Param name="Executable" value="notepad.exe" />
<Param name="Arguments" value="README.txt" />
<Param name="StartOnCall" value="ScoobySnacks" />
</Monitor>
</Agent>
<StateModel name="TheStateModel">
<State name="initial">
<!-- This action will block until process exits -->
<Action type="call" method="ScoobySnacks" />
</State>
</StateModel>
<Agent name="Local">
<Monitor class="Process">
<Param name="Executable" value="notepad.exe" />
<Param name="Arguments" value="README.txt" />
<Param name="WaitForExitOnCall" value="ScoobySnacks" />
</Monitor>
</Agent>


