I’ve just stumbled on these blog posts, by Maciej Sinilo, a game developer. He’s written a memory allocation monitoring tool and mentions that using
RtlCaptureStackBackTrace() is a faster (if undocumented) way to capture a call stack. This is interesting to me as the call stack capture code in my debugging tools (deadlock detection, timeshifter, tickshifter, etc.) is pretty slow when using
StackWalk64(). It’s also interesting that he seems to store and sort stacks by CRC which is similar to what I do in my tools.
This entry’s really just so that I don’t forget where I found the link…
Oh, and this link is really useful to, though I’ve already been bitten by and fixed most of the issues that are mentioned.
Updated: Link to the docs for
RtlCaptureStackBackTrace() is here; thanks Barry.