Introductions, ICorDebug + CLR Debugging Services

My name is Mike Stall, and I'm a developer on the CLR (also called the .NET runtime and a host of other names). I currently work on the CLR Debugging Services along with some other folks. We design and implement the managed debugging API exposed by the CLR and consumed by managed debuggers (like Visual Studio.NET) to allow them to debug managed applications.  This API is called ICorDebug, and it's implemented in mscordbi.dll (I had to mention those terms for the search engines ;) ). We don't actually design the debuggers (except for Cordbg...), and so I'd guess we have at best a very indirect impact of the developer community.

I'd expect the audience interested in the CLR debugging services to be extremely small, so I'm not exactly sure what I'll actually blog about, but I'll see as it goes.  Some potential posts may include:

  • managed debugging design issues. For example, comparing managed-only debugging to native-only debugging.
  • code snippets for doing something useful  (like a simple harness that traces module loads)
  • random comments from various .NET pet projects I do. For example, I recently tried writing a syntax-hilighted version of notepad with winforms and ran into some "interesting" problems.
  • other random CLR / .NET observations I come across.
  • observations about how the debugging API influences the debuggers.
  • stuff about Interop (aka Mixed-mode) debugging. How does it work and why is it so broken in V1.1? (We think we've made great progress on this for V2.0)
  • other random stuff that comes to mind.
  • anything that readers may prompt me on (so jump on in!)

Comments

  • Anonymous
    September 29, 2004
    This really interrests me.
    (I'm doing a syntax highlighted version of notepad too - www.icsharpcode.net/OpenSource/SD)

    I'm really interrested in samples and the API. Is it really possible to create a managed debugger with mscordbi.dll or is still unmanaged code required?

    I would like to start a managed debugger. What about the edit and continue feature? Is it supported by mscordbi.dll ? Will the api of mscordbi.dll be public ?

    Regards
    Mike
  • Anonymous
    September 29, 2004
    Looking forward to your posts as I am very interested in any information on the CLR.
  • Anonymous
    September 30, 2004
    Likewise, I'm looking forward to your posts. I'm particularly interested in writing simple debugging utilities in managed code -- i.e. writing a C# debugger in C#. It would be great to see some samples that are in C# and are simpler than Cordbg -- it's hard for me to wade through all of that C++ COM code.
  • Anonymous
    September 30, 2004
    We actually have a pure C#/IL managed debugger sample. I just posted about it in more detail.

    ICorDebug is actually a public API, it's just very very pooly documented. We're trying to fix that.

    V2.0 of ICorDebug will support Edit-and-Continue.