Why are no Symbols loaded when remote debugging?
I want to use remote debugging. The program that I want to debug runs on machine b. Visual Studio runs on machine a.
On machine b I have a folder with the following files:
- msvcr72.dll
- msvsmon.exe
- NatDbgDE.dll
- NatDbgDEUI.dll
- NatDbgEE.dll
- NatDbgEEUI.dll
If you think some files are missing, could you also describe where they are usually located?
In the next step I started the msvsmon.exe
and my program on machine b. On machine a, I started Visual Studio 2008 and my solution in which the program was written. Then I choose "Debug - Attach to Process". I chose "Remote Transport (Native Only with no authentication)". I used the correct IP as a qualifier and took the right process (program.exe). After a while the following message occurred in a popup-window:
Unhandled exception at 0x7c812a7b in program.exe: 0xE0434F4D: 0xe0434f4d
I can continue or break; When continuing, the exception occurs again and again and again. So I pressed break and the following message occurred:
No symbols are loaded for any call stack frame. The source code cannot be displayed.
Solution 1:
Make sure you copy the .PDB file that is generated with your assembly into the same folder on the remote machine. This will allow the debugger to pickup the debug symbols.
Solution 2:
- On the Tools menu in Visual studio 2010, choose Options.
- In the Options dialog box, open the Debugging node and then click Generals.
- Check Show all settings if needed and locate Enable Just My Code (Managed only)
- Uncheck it and click OK
After you can attach the remote process
Solution 3:
- Add a shared folder on your dev machine that points to the location of the .pdb files
- Set up an environment variable called
_NT_SYMBOL_PATH
on the remote machine that points to the shared folder on your dev machine
The remote debugger will now search your dev machine for symbols. No need to copy them over for every build.
See MS Video here.
Start watching 8-9 minutes in. He demonstrates how to setup the remote debugger to load symbols from a drive share on your development machine.
Good luck!