views:

416

answers:

2

I am fairly new to remote debugging in Visual Studio, and by new I mean I have never done it before. Here are the steps I have taken to try to remotely debug an application on one of the servers in our network:

  • open a website in VS2008 "\\server\website"
  • Start the msvsmon service on "server" with "no authentication" and "allow any user to debug"
  • From VS2008, Attach to the w3wp process on "server" using remote transport

debugging starts and everything seems ok, but when i go to the page with the error, it doesn't break and let me debug. Am I missing something?

+3  A: 

You need to ensure you have the PDB files loaded correctly.

Visual Studio is going to look in that remote location for the PDB files (which contain the debugger information) and if it doesn't find them it doesn't have the necessary debug symbols to break on.

To add a pathname to the symbol file (.pdb or .dbg) locations list

  1. On the Tools menu, choose Options.
  2. In the Options dialog box, click the Debugging node to open it.
  3. Under Debugging, select the Symbols category.
  4. On the Symbols page, there is a box that says Symbol file (.pdb) locations. Above the box are four icons. Click the folder icon and editable text appears in the Symbol file (.pdb) locations box.
  5. Edit the text to add a new path. Statement completion helps you get the format right.
  6. Make sure Search the above locations only when symbols are loaded manually is not selected, unless you want to load symbols manually when you debug.
  7. If you are using symbols on a remote symbol server, you can improve performance by specifying a local directory that symbols can be copied to. To do this, use the Cache symbols from symbol server to this directory box. Note that if you are debugging a program on a remote computer the cache directory refers to a directory on the remote computer.
  8. Click OK.

http://msdn.microsoft.com/en-us/library/x54fht41.aspx

The Matt
I tried this and no-go, I have th pdb file in the bin folder and it was compiled with debug and debug=true in the web config.
Russ Bradberry
i think we're on the right track here, because all signs point to no symbols being loaded. in step 5, i am putting the path as \\server\website\bin, this is where the pdb file is. is this wrong?
Russ Bradberry
No, that should work. Normally though I just load the local copy of my PDB's (which you can find in your local bin folder), that way I don't have to deal with permissions issues and such on the remote server.
The Matt
when i try to load the pdb manually, it says that it does not match the module
Russ Bradberry
Try doing a clean of your build. Then do new compilation in debug. Copy the deployed files up manually to your remote server. It gets a little wacky if you do builds/compilations after you deployed. You basically want to ensure you have identical versions of all files on both your local machine and the remote machine.
The Matt
It seems this got it. I guess the pdb file on the server was old compared to what I compiled. Most likely due to developers making changes directly on a live server.
Russ Bradberry
+1  A: 

Here's a checklist.

Mike Blandford