Wheel Reinvention Jam 2022 Project
In a generic debugger you can inspect the current program state, and step along with the program to find out what the next state will be, but if an error occurs you have no idea what the program has been doing before. This project aims to prototype a solution that automatically inserts tracing code, which outputs a complete list of all the functions called and branches taken. This can be interpreted to know every instruction and every line of code executed.
Some possible uses:
- Match a free against a previous malloc, and the context & callstack of that malloc
- Search back in time in your program for functions that might have changed your program state, if you want to know why you have a use after free, invalid pointers or other kinds of bugs.