Learning the sequence of calls in an application is either tedious or time consuming or both. And when there are callbacks involved it becomes frustrating.
The typical solution used to be adding trace statements are the entry and exit of functions. But this reuiqres a lot of editing in existing programs along with adding code space and execution penalties in production code.
Along comes a fascinating article from IBM, written in 2005. The solution is to use existing functionality with a bit of glue code. The key is a feature of gcc, Continue reading