0

I have a program which is instrumented to generate mini-dumps on exceptions. I have archived copies of the .exe, .pdb and the source files. The only way that I have found to get Visual Studio to find the .pdb file and analyze a dump when I receive one from a client, is to place the archived files in the exactly the same location that the original build took place on the disk.

I have tried adding the path to the .pdb file to Visual Studio's debug symbol directories, but the path is always ignored. The path in the .exe file seems to be used instead.

This is terribly inconvenient, since it means moving the code which is currently under development to some temporary location, while the archived code takes its place for crash dump analysis.

Is there some simple way (i.e. without setting up symbol and source servers) to direct Visual Studio to access the debugging context in some location other than the original build location?

Matt Johnson-Pint
  • 230,703
  • 74
  • 448
  • 575
Linda X
  • 44
  • 4

1 Answers1

1

What you need is a symbol server or at least a directory that has the same structure. If you have TFS, you just might need to configure it correctly.

If not, you have the following options:

a) add symbols manually for each delivered version using symstore
b. add symbols automatically for each build using symstore in a post build step
c) either of a) or b) and publish the result onto a webserver that acts as a HTTP symbol server.

You can do a) or b) if you're working alone. You should really consider c) if you're working in a team.

The things are not so simple and Stack Overflow is not thought for writing fully-fledged tutorials. Therefore I give you the following hints:

  1. You need to understand that a symbol path can have several tiers. You are currently using a 0-tier symbol store, which is a flat directory. This is the worst option. Good news: if you have the symbols, you can still get other tier types set up.

  2. Once you understood point 1. about the tiers and want to go for option c) without TFS, build an HTTP server.

IMHO you should find all necessary information in How to get a symbol server set up. If you don't want it on the network, you can also put it on local disk.

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222