In the last few days I created the first version of a tool I call "CLR Explorer". This tool allows viewing live CLR-enabled processes, showing the AppDomains, threads and assemblies in those processes.
The application is similar in look to Windows Explorer, with a tree-like view on the left and a list view on the right. Here's a screen shot:
The tool works by utilizing the native debug interfaces the CLR provides, namely ICorDebug and its derivatives, such as ICorDebugProcess and the like. These are the basis of a CLR based debugger. I have a started an ambitious project to create a "Debugging Studio" (as Sasha Goldshtein calls it), with the power of WinDbg+SOS(ex) and the ease of use of Visual Studio, that can be used in production environments - i.e. no dependency, just a single native EXE.
The CLR Explorer tool is my first attempt at utilizing those interfaces, with sketchy documentation at best, and errors and omissions at the worse end. Wish me luck... if anyone wants to join in and has good knowledge of C++ and COM (and MFC doesn't hurt for the UI stuff) - let me know.
Check out the tool - I plan to put in in OpenUp when I tidy up the code a bit... but for now any comments or suggestions are welcome. I plan to add a few features in the next few days.
The tools refreshes for new processes (this is not supplied automatically with the debug interfaces) and is updated when a process exits, a thread created or destroyed, an appdomain is created or destroyed. More events might follow.
Again, any comments and suggestions are welcome, and if there are serious bugs - let me know too (I know of a few "small" bugs that I intend to correct).