digitalmars.D - Possible to Animate Program
- Hiemlick Hiemlicker (29/29) Jun 29 2016 Is it possible to add a hook to every function
Is it possible to add a hook to every function call/delegate/lambda both start and end? What about the ability to essentially log a programs execution path, then "play it back" and only view the source code one is interested in along with the state at any moment in time. Similar to debugging but after the fact. Imagine watching the program as if it were recorded and also see the source code in another window and see it move through it. Or see a tree like structure with each node representing a function and the active node being the current function the program is in. The ability to hook in to the functions is a big part of that to collect all the data needed. It can't be done by blinding logging all state information since this is generally huge. I'm interested in advanced program analysis techniques that are far beyond your typical run of the mill debugging methods. Modern programs require modern debugging, logging, and analysis methods and tools. The easier it is to hook into the necessary program components the quicker these tools can be written. D provides quite a bit of *code level* abilities but I am not sure about function hooking. I am not in to resorting to use hacks, object code modifications, etc. I will give a simple method to see the trace of a program: 1. Add hook to start of every function call of program. 2. Log function name, line, and time stamp. 3. Animate source code by log. We can extend this to include data collection at call site, profiling, etc if the appropriate features exist(function hooking).
Jun 29 2016