Freigeben über


ICorDebug, Edit-and-Continue, and C#

In case anybody missed it, VS 2005 C# is going support Edit-and-Continue! (See announcement, and some follow up posts by the C# team from Andy and Steve).

 

The CLR is a language-neutral platform. So naturally, our debugging API (ICorDebug) operates at the IL level so that it can be language-neutral as well. The Edit-and-Continue support in the debugging API is language-neutral, though it was mainly designed to ensure that key VB scenarios worked.   

 

In theory, any 3rd party could write their own managed debugger and support EnC for their own languages ([Update]: see here for how a 3rd-party can support EnC).  The C# team put this to the test because they did EnC without any additional modifications to ICorDebug.

Comments

  • Anonymous
    October 17, 2004
    I encourage you (and you colleagues) to write articles about exactly how "any 3rd party could write and support EnC". Perhaps a step-by-step covering each main idea up to and including supports stepping and watchpoints.

    I, for one, would love to see such content.

    (Perhaps this content would even make a good candidate for a follow-on book for "Build Your Own .NET Language and Compiler" in collaboration with it's author, Edward G. Nilges.
  • Anonymous
    October 17, 2004
    [ Pardon the earlier typos. I meant "your colleagues" and "including support for". I must be tired. 6:18 AM here. ]
  • Anonymous
    October 17, 2004
    BillT - are you thinking of writing your own enc-cabable debugger?

    I'll add it to my blog todo list. Thanks for the suggestions.

    FWIW, MDbg has a very primitive demo of the interfaces, but we recognize it's not nearly enough to infer a complete solution.
  • Anonymous
    October 17, 2004
    The comment has been removed
  • Anonymous
    October 17, 2004
    Kudos indeed to the C# team!
    It was practically no extra work from the CLR end (since we're language neutral), but I need to point out that the language-services actually did have a bunch of work needed to make a language EnC-capable.
  • Anonymous
    October 27, 2004
    Well, if parsing front end is important, then my book is useful. I suppose that in debugging scenarios the debugger would need to parse complex expressions, but my book intentionally skimps on code generation.

    Its primary mission is to show that there's a body of well-established theory out there which programmers can use in the front end of any parser, and that they don't have to either develop their own theory or use a "tool" which is hard to manage because it does its own thing.

    But to work with EnC you need depth also in CLR and code generation, to which only a chapter is devoted in my book.
  • Anonymous
    October 28, 2004
    The comment has been removed
  • Anonymous
    August 16, 2005
    Native-only debugging allows you to debug child processes. In other words, you can debug process A, and...
  • Anonymous
    August 18, 2005
    Native-only debugging allows you to debug child processes. In other words, you can debug process A, and...
  • Anonymous
    August 18, 2005
    Native-only debugging allows you to debug child processes. In other words, you can debug process A, and...
  • Anonymous
    March 28, 2006
    Here are some random software things I use that really change how I work.

    OneNote: Word is not a...
  • Anonymous
    July 13, 2006
    PingBack from http://blogs.msdn.com/jmstall/archive/2005/01/04/346641.aspx