Lets say I'm debugging a game which I don't have the src code. This game was built with directx 9 and I want to dig into the more low-level stuff around it. I already did some hooks in some dx9 calls such as Present and EndScene to create some nice stuff for the game but I was wondering how people debug this kind of scenario in "real life". As almost every dx9 function is a virtual function of a class the analysis of it gets very hard very fast (at least for me) and I find myself lost don't knowing where exactly the functions are being called without debugging, etc. Another thing I was wondering is if it's possible to profile the dx9 calls to know some bottlenecks and stuff.
Any kind of help will be very appreciated here. Thanks in advance.