I was definitely doing this kind of thing back in 2009 but I swear also in 2003 by just wrapping the few standard library memory allocation functions and adding a backtrace loop to store information about the caller. I am not sure where the difficulty is in implementing it?