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>