Open
Description
The interpret
function is a key part of the symbolic execution since it computes the models for reachable parts of the code, to be solved later. The returned models lack of any detail on the program counters (PC) visited, and therefore, it is very hard to know which ones are more important or more relevant to solve.
If third party applications such as Echidna, wants to integrate the symbolic execution into a fuzzing campaign, it will be really useful to have the list of explored PCs. Tools can filter which models they want to solve, for instance to find inputs that allow deeper code lines, instead of solving path conditions from states already visited.