One of the questions that comes up about debugging dump files is how to debug a dump file that was created from a 64-bit process. The reason why this question comes up is because Visual Studio itself is a 32-bit application and therefore, cannot debug a 64-bit dump file (or process). As a result, the first time that a developer tries to debug a 64-bit dump file, he (or she) typically runs across the following error message:
The 32-bit version of Visual Studio cannot debug 64-bit processes or 64-bit dumps. Please remote debug with the 64-bit version of Visual Studio Remote Debugging Monitor (MSVSMON.exe) instead.
To fix this problem, before you start debugging the dump file, run the 64-bit version of msvsmon.exe from %ProgramFiles%Microsoft Visual Studio 9.0Common7IDERemote Debuggerx64. However, even after doing so, you might see the following error message:
The version of this file is not compatible with the version of Windows you’re running. Check you computer’s system information to see whether you need an x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher.
Unfortunately, this error is rather confusing and doesn’t tell you anything about the root cause. The problem here is that you are running a 32-bit operating system and therefore, cannot run a 64-bit process. Hence, you need a 64-bit operating system to run the 64-bit version of msvsmon.exe.
To summarize, in order to debug a 64-bit dump in the Visual Studio debugger, the following conditions need to be met:
- You need a 64-bit version of Windows
- You need to run the 64-bit version of msvsmon.exe first