In case you haven’t already heard from every other blogger (like Shawn, JasonZ and Brad) , V2.0 of the SSCLI (aka Rotor) is now available for download: http://msdn.microsoft.com/net/sscli. I just downloaded it myself.
This is basically the source for the CLR you know and love. Let me call attention to the debugging services (as that is the theme of my blog…):
- The CLR-debugging services are in sscli20\clr\src\debug\ee (left-side) and sscli20\clr\src\debug\di (right-side). All the definitions of the various ICorDebug implementations are in sscli20\clr\src\debug\di\rspriv.h.
- It also has the source to the old Cordbg (sscli20\clr\src\debug\shell), which can be very useful documentation if you’re using the raw unmanaged interfaces. We deprecated Cordbg in favor of Mdbg.
- Rotor does not have all of our new V2 CLR-debugger features. Afterall, if we couldn’t put interop-debugging or Edit-and-Continue in non-x86 ports, we obviously couldn’t get it in rotor either.
I think this is very educational. I believe the source is valuable documentation, and you’ll find that useful if you’re crazy enough to be writing your own implementation of ICorDebug (like Roger) or even just consuming ICorDebug.