I am constantly using remote debugging. I have one ‘development’ machine. On this machine, I have Visual Studio 2005 and an environment setup to build whatever version of VS I want. Then I have a bunch of test machines which run debug versions of Visual Studio. When I develop new code, I build it on my dev box, and deploy it to a test box. I also frequently remote debug to machines in the lab, or a machine in a testers’ office.
My setup is really simple:

  1. TS into the target machine
  2. On target machine: Start->Run ‘\\<dev_machine>\msvsmon\x86\msvsmon.exe’
  3. On dev machine: Start Visual Studio, and point at the target machine

In 2005, we have really optimized this scenario. You can now both native and managed debug without installing anything on the target machine. All you need to do is run ‘msvsmon.exe’ off a share. To make this easier, VS setup installs msvsmon into a folder that is tailor made to share out (C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger).

My question: How well does this fit the scenarios that you would like to do remote debugging?

  • Do you often need to debug across a firewall?
  • Do you often need to debug without logging into the target machine?
  • Do you often need to supply a new set of credentials when debugging?
  • Would you rather run a setup on the remote machine?