Jackson on our team recently posted a sample on building a debug engine.  In our architecture, the debug engine is the part that does all of the communication with the debugging/diagnostic APIs for a given platform, and communicates those back to the UI through a common set of interfaces.  The debugger ships debug engines for managed code, native code, script, native devices and t-sql in the box.  The debugger engine extension point gives people writing new platforms the ability to provide an excellent VS debugging experience.

 Take a look at the sample here:

http://code.msdn.microsoft.com/debugenginesample

 

John