One of the things I always found useful was tracking the "this" address throughout the execution of a program. Traditionally I would use Cheat Engine to check what accesses or writes to a variable then place a breakpoint at that address in order to track its execution. This would allow me to build a stack trace as well as track the values of registers after every return. The problem is that this approach takes a very long time to do manually and I'd like to know if there's an easier way of doing this.
I'm looking for a tool where I can give it an address to watch and when that value is modified, it would snapshot the stack as well as the values of the registers after every return. I only care about return's and not so much call's as I'm only interested in finding the "master functions". Although a general call tree visualizer would be cool also. Anyways if anybody has any recommendations I'd appreciate it.