I hope y’all are using Sysinternals Process Explorer on a daily basis as your Task Manager replacement. It’s a really awesome tool with lots of functionality; among my favorites are:
- Seeing all the handles and DLLs opened by the process in the bottom pane
- Monitoring important .NET performance counters through the .NET Performance tab
- Viewing a list of the process’ threads and their respective call stacks
This last feature, however, has a minor drawback: it doesn’t display managed call stacks properly. The reason is the same as with many other debugging tools – managed symbol resolution requires different APIs than native symbol resolution (through Dbghelp.dll).
Enter Managed Stack Explorer, an open source tool that displays managed call stacks for arbitrary processes. It even has some tracing and logging support.
Unfortunately, the tool currently supports only CLR 2.0 processes, and looks somewhat abandoned (last release from 2006). I can’t see any recent updates to the “official” managed debugger API wrappers, so it’s not trivial to see how Managed Stack Explorer can be revived. I’m going to keep an eye on it.