Standardizing ICorDebug?

I was recently asked “Are there any plans to standardize (ECMA for example) the debugging APIs?”

 

Short answer is “No”. 

 

My two cents: In my opinion, ICorDebug is not yet ready to be standardized:

- Standardizing it would impede our ability to innovate the API.

-

On the managed side, it’s also an ongoing struggle to decide what level of abstraction a debugging API should have. We try to abstract it at the IL level, but sometimes we find we need to expose more things. We don't want to standardize it until we lock this down.

- IMO, it’s not clear there’s a significant benefit to standardizing it. On the other hand, I think it makes more sense to standardize the compiler’s output (metadata, symbols, IL formats, etc) because significantly more people write their own .NET compilers.  But I believe the managed debugger niche is pretty small, and I’m not aware of a large audience asking it to be standardized.

- The interop-debugging portion of ICorDebug mirrors the native-debugging APIs. Native Debugging is so platform specific, it’s hard to standardize it. For example, native debugging relies on platform specific APIs inspecting platform-specific properties of a process. 

 

Kelvin Hoover, a Program Manager on the CLR, has more knowledge on these sort of matters than I do. He sums it up saying: “Debugging is considered an implementation detail. They have however standardized a debug symbol file format”.