This is actually a very simple Yes/No question, see below.
I want to do two things: profile by time and by execution count.
Right at the start I have two simple fields:
line dd ?
file dd ?
For execution count profiling I can just set a simple debug trap on [line] which I know exactly how to do, no fuss. (Though I can think of a simpler and probably faster way which I may end up using)
After a (long!) day spent in google, where the answer seems to be
timeGetDevCaps / timeBeginPeriod / timeSetEvent / timeKillEvent,
I thought I would ask here anyway.
What I really want to do is invoke a bit of code on a periodic basis and
record what I've left in [line] and [file]. (What I probably really do not want to do is check the time every time I set line, as that will skew things)
As above, I now think the only way to do this (under Win98+) is via the
above api routines (which seems alot simpler than either the CreateWaitableTimer/SetWaitableTimer functions which need a separate
(sleeping) thread or mess with IRQ0/int 70h which seriously confused me.
Maybe I just don't know what to type into google but I cannot seem to find any decent/understandable examples of this, and it seems I am not alone.
Hopefully that will take care of time_profiling, but still not as simple as a
plain debug trap (for me, anyway).
So my question is this: Does Windows keep a time field anywhere in memory that I can also set a simple debug trap on?
Regards,
Pete
PS at some point I will want to do similar on Linux, so any pointers would be handy for future reference.
|