Howto: Verifying Symbols before taking a Dump using symchk

Prior to taking a dump on a program, you should be sure that there are matching symbols for the application the dump is being taken on.  Large dumps can take many hours to upload to a person for debugging.  You can validate symbols against the executable before a dump is taken in order to prevent the wrong symbols or a dump with no matching symbols from being sent.
Symchk can be used to verify that the symbols (.pdb) for the program can be found in the path designated after the “/s” parameter. It will show a failed condition and say that the matching .pdb file could not be found if it’s not in the folder designated. “symchk” is part of the Debugging SDK. 
You can verify symbols by using symchk from a cmd window in the debug folder.  If the .pdb file is not found, then symchk will complain. 

In the examples below, D:\DebugThis\Debug\ is the path to where the debug symbols are.

Check a file against symbols:

  Example: C:\debug>symchk D:\DebugThis\myProgramOrDll.exe /s D:\DebugThis\Debug

Check a file against symbols – with more details:

  Example: C:\debug>symchk  /v D:\DebugThis\myProgramOrDll.exe /s D:\DebugThis\Debug

Check a process against symbols:

  Example: symchk /v /ip <processid> /s D:\DebugThis\Debug\

Check a dump file against symbols:

  Example: symchk /v /id <processid> /s D:\DebugThis\Debug\