Cali and his team have made PencilCode: a tool to help students to debug, in a few ways:
Add the state of variables to lines, allowing users to step forwards and backwards in time, and overlaying the code with arrows to visualiza control flow.
Really nice work. Cali ended with some challenges. Firstly, how to make this appealing? Cali tried it with some students, but they still did not use it 🙁 How to convince students that this really helps? There are technical challenges too: for example rewinding graphical state.
The paper is available.