1

I'm able to debug almost any crash dump that my large organization generates because all symbols and relevant executables are stored compressed in a central symbol store location. There's never a problem until I need to send the crash dump along with all its relevant pdb's and executable files outside the company to debug a third party library.

The last time I did this, I had to perform a lot of trial and error to collect the files I needed from the symbol store, which is mostly machine organized and not very human readable. It would be great if I could open the crash dump and have Visual Studio extract and save out all the files I need from the symbol store to another folder so I can send it off for analysis.

Know of any way this can be done?

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222
Kumputer
  • 588
  • 1
  • 6
  • 22

1 Answers1

0

I don't know a solution for Visual Studio. However, this problem can be solved with WinDbg or SymChk from the Debugging Tools for Windows which are provided by Microsoft for free.

According to my knowledge, a symbol server does only store PDBs and not executables, so the following instructions are for PDBs only.

There is a command for WinDbg, !SaveAllModules, which might work for saving all DLLs and executables which are present in the dump file. I don't have a lot experience with it.

Steps in WinDbg

On a machine with Internet connection and connection to your company's symbol server

  1. Open the crash dump in WinDbg
  2. Set up the symbols, e.g. add your company symbol server and the Microsoft symbol server. For the cache location, choose an empty directory.
  3. run the commands .reload /f and ld*

This will download all available symbols into the defined directory.

Steps for SymChk

On a machine with Internet connection and connection to your company's symbol server

  1. From a command line prompt, run

    symchk /id <dumpfile>.dmp /s srv*x:\symbols\*http://msdl.microsoft.com/download/symbols /od
    

    Where

    • /id is for "input dump"
    • /s defines the symbol path. Make sure you get the syntax right. Don't forget to include your company symbol server
    • /od is for "output details" (verbose mode) to display any problems
Thomas Weller
  • 55,411
  • 20
  • 125
  • 222