In my latest project I was running into an issue where running my installed application on a test machine was crashing before it could even startup, but it ran perfectly when installed on my machine. I was almost to the point of taking the time to install Visual Studio 2010 on the test machine, when my coworker, Bryan Coon, reminded me of the Remote Debugging capabilities of VS and recommended trying that first.
I started off using Danny Warren’s Remote Debugging post to get both my machine(on domain) and the test machine(off domain) enabled so that I could Attach to Process (Ctrl+Alt+P) from VS 2010 on my machine. Here are the main points that I gathered from it:
- 3 instances of the same username needed to exist as administrators (and have been logged into at least once)
- The domain username on my machine (domain\travis). This is the username that Visual Studio is run under.
- The machine username on my machine (MyMachine\travis)
- The machine username on the test machine (TestMachine\travis). This is the username that the remote application is run under.
- The Visual Studio 2010 Remote Debugging Monitor needed to be installed on the test machine
- Use the setup program that matches the OS (x86, x64, ia64)
- I ran the application instead of setting it up as a service, so I needed to make sure it ran as an administrator
- Everything from the bin\Debug folder of the application must be copied to the test machine.
Once the Remote Debugging Monitor was started, I was able to view all the running processes in VS by entering the name of the server that the Remote Debugging Monitor started (travis@TestMachine) into the Qualifier box.
In most cases this would have allowed me to then attach to my running application and hit debug points. My application, however, crashed before the application even became available in the list of available processes.
So the next step was to get Visual Studio 2010 configured on my machine to start the application on the remote (test) machine when I started the application with debugging (F5). I found what was needed here. All that was required was to modify the following properties in the Debug section of the application properties screen:
- Select Start external program and specify the path to the application on the remote computer
- Check Use remote machine and specify the remote machine
The gotcha I ran into was that again the remote machine name is the server name that the Remote Debugging Monitor started not the actual machine name.
With these final steps completed I was able to start the application with debugging and immediately found my issue. While this process took a little bit of time to setup, it saved a bunch of time that would have been spent installing Visual Studio 2010 and allowed me to keep the test machine clean of all developer tools. So if I run into an issue like this again I will definitely think to try Remote Debugging right away.