Note that there are some explanatory texts on larger screens.

plurals
  1. POImplementing debugger support: choice of debugging API
    primarykey
    data
    text
    <p>The .NET Framework has unmanaged <a href="http://msdn.microsoft.com/en-us/library/ms404520.aspx" rel="nofollow noreferrer">debugging</a> and <a href="http://msdn.microsoft.com/en-us/library/ms404386.aspx" rel="nofollow noreferrer">profiling</a> APIs that I assume people/companies are familiar with. If someone was implementing debugger and profiler support for a new CLI runtime¹:</p> <ul> <li>What would be the pros/cons of basic their operation on these existing APIs?</li> <li>These APIs retain backward compatibility² by incrementing interface extension numbers to indicate support for later features. I would have the opportunity to combine these interfaces and remove deprecated methods since there is no "backwards" to be compatible with. Would that be a good idea? One point of interest here is this would not remove source code compatibility with existing debuggers because my system would require the debugger be implemented in managed code &amp; managed API, and the existing ones are written in unmanaged code.</li> <li>Are there other documented debugging/profiling APIs available? Is their feature set anywhere near as complete as the ones mentioned above?</li> </ul> <p>¹ I like working advanced, long-term projects at home to keep me learning and thinking about solutions to large problems. I know there are others available, but I want to work on one to really see what's involved, and I'm already a decent way into it.</p> <p>² I can't find a link describing this, but it's extensively used in the Visual Studio API as well. I believe I saw it in a "COM interface naming guidelines" document? You see it as the <code>ICorDebugClass2</code> interface showing up to extend <code>ICorDebugClass</code> interface without altering the original.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload