Remote Debugging vs. Remote UI

Visual Studio supports “Remote Debugging” (Gregg talks about that a lot here), which is the ability for the debugger and debuggee to be on different machines.

It turns out the CLR Debugging services don’t provide any explicit support for remote debugging. From our perspective, all debugging is local. We would call this scenario “Remote UI” since ICorDebug is actually on the same machine as the debuggee and it’s the VS UI that’s remoted. We cooperate with VS’s remote debugging architecture because ICorDebug explicitly does not have any UI. For example, on fatal errors, ICorDebug will dispatch a callback to VS instead of popping up a message box.