Yesterday I had very frustrating day tried to remotely debug my Win32 C++ application.
I just went to the home when colleagaue called me on the phone with information that we have a problem with our last app release. Application just crashed after login screen.
I was under pressure because I was unable to reproduce error on my development machine, so I was forced to do some remote debugging.
So I installed Remote debugging tools on client machine, and copied all debug versions of dlls and app. Also I copied .pdb files on target machine. After that I started msvsmon.exe and launched application.
From Debug options in Visual Studio I selected "Attach to process", choosed "Remotely debug " and entered client machine address, and voila, list of processes on client machine is populated. I selected my app to attach to it,
Debugging started, but I was unable to set break point on code. There was an small red circle with exclamation sign showing the text "No Symbols have been loaded for this document".
I tried everything to get it under debugging but nothing helped. I searched many pages looking for solution, but with no luck.
Everything seemed correct, but I just was unable to set any break point in the code. Finally I decided to revert app to last version and to leave debugging for tomorrow.
As it usually happens, when you move away from the problem you cant solve, the solution comes by itself.
When I was installing Remote Debugging tools on the client machine, I was forced to install x64 version of debugging tools cause there was 64-bit version of Windows installed on the client machine.
Then without to much thinking, I launched 64-bit version of MSVMON.EXE.
But my app is 32-bit application. !?!#$$"#!!.
Even If you install 64-bit version of Remote Debugging tools, there are two version of MSVMON.EXE.
One for remotely debugging 64-bit apps, while the other is fro debugging 32-bit apps.
Interesting thing is that when I finally launched 32-bit version of MSVMON.EXE, there was message displayed that I will not be able to debug 64-bit apps, but there was no info that I would not be able to debug 32-bit apps when running 64-bit version of debugging tools.