Instead of singlestepping to build up a mental understanding of control flow within a function, Pernosco directly visualizes it for you.
Visualizing control flow for functions without loops is easy: we highlight the lines that were executed. Clicking on a line-executed highlight jumps to the execution of that line:
Loops have to be flattened onto the linear source view. We highlight the lines executed in the current iteration of any (possibly nested) loop(s) the application is currently in (including the lines executed at the top level of the function outside any loop). Also, lines executed in this function activation but not in the current loop iteration are highlighted with a lighter color. Clicking on the latter shows all executions of that line in the current function activation.