-
Dear developer/community, at the moment, I try to figure out, why centipede or the runner doesn't deliver coverage feedback from inputs that crashes the target. My idea is to write a function similar to AFL's crash exploration mode. For that, I feed crashing inputs in centipede's corpus and use them as mutation basis. To decide, which mutation reaches the same or nearby code coverage of the feeded crash, I need the coverage information of the crashing inputs. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
The coverage information is passed from the runner (child process) to the engine (parent process) It may be possible to "fix" this by intercepting all ways a process can crash, and passing the coverage to the engine there. The communication is not actually pipes, but shmem, but it's a minor implementation detail. The code is in ExecuteInputsFromShmem:
|
Beta Was this translation helpful? Give feedback.
The coverage information is passed from the runner (child process) to the engine (parent process)
after executing an input, not during, because the coverage data needs to be pre-processed.
When the runner crashes, the "after" code is not invoked.
It may be possible to "fix" this by intercepting all ways a process can crash, and passing the coverage to the engine there.
But it's a non-trivial amount of work.
The communication is not actually pipes, but shmem, but it's a minor implementation detail.
The code is in ExecuteInputsFromShmem: