The SD Debugger is bassically composed from 2 libraries: Debugger.Core (the code that communicates with ICorDebug* interfaces/data structures) and Debugger.AddIn that connects the IDE with the core engine. Also, the addin handles the UI - pads, tooltips, visualizers - and implements a WindowsDebugger service - which is the center piece in Debugger.Addin from the debug point of view.
The best example is the SD debugger. :)
Other example you can see in my ILSpy github, Debugger branch, where I integrate the SD Debugger in ILSpy. But be carefull that in ILSpy the debugger is not using any PDB files (SD debugger is using PDB files to retrieve information used by a debugger) - the code mappings (IL - C#) are created on demand. Also, the ILSPy debugger is using the latest version of NRefactory which is not over yet, while SD Debugger is using the current NRefactory + SD.Dom.