Visual Studio 2008 not loading symbols when debugging a .DMP

I'm trying to debug a C# application from a .DMP file and I have the executable, the DLLs and the PDBs all in a folder called "MyFolder." I set the directory containing the source code to C:MyFolder but when I try to debug it tells me that:

"No symbols are loaded for any call stack frame. The source code cannot be displayed."

When I open the Symbol Load Information it states that the following PDBs could not be found:

C:WindowsSystem32kernel32.pdb: Cannot find or open the PDB file.
C:MyFolderkernel32.pdb: Cannot find or open the PDB file.
C:MyFoldersymbolsdllkernel32.pdb: Cannot find or open the PDB file.
C:MyFolderdllkernel32.pdb: Cannot find or open the PDB file.
C:MyFolderkernel32.pdb: Cannot find or open the PDB file.
C:Windowssymbolsdllkernel32.pdb: Cannot find or open the PDB file.
C:Windowsdllkernel32.pdb: Cannot find or open the PDB file.
C:Windowskernel32.pdb: Cannot find or open the PDB file.

My PDBs are in the correct folder and they're timestamped with the exact same time and date. Does anybody know what's going on here? What's the proper way to load the symbols?

How do I verify my application's symbols are actually loaded (to eliminate them as the problem)? I checked the Modules and it looks like all of the DLLs and the executable of my project are unable to load the symbols, specifically the symbol status is "No native symbols in symbol file"... when I right click on the item and I select "Load Symbols From -> Symbol Path" and I select the PDB C:MyFolderMyApplication.pdb then it tells me that "The symbol file for MyApplication.pdb does not match the module."


It sounds like the dump file is a native-code minidump, not a managed-code minidump, since the symbols for all those DLLs are usually not critical for managed debugging unless you debugging a mixed-mode app, debugging into Win32 calls or debugging across managed/unmanaged boundaries.

It depends on how the minidump was created. If it was on a different machine on a different operating system or service pack, then you may need the symbol path set up to get the exact PDBs of the system DLLs from the other machine, not your application assmeblies and symbols. Your managed debugging experience will improve if these unmanaged symbols are correct. To further complicate things you have .NET "micro-versions" and native images to contend with to get the stack traces working.


You must ensure that:

  • Executables/DLLs and PDBs are of same build. PDB internally uses GUIDs to determine if associated EXE/DLLs are correct. Otherwise it won't load the symbols. It is not VS per se, but from DbgHelp.DLL.
  • Ensure you are having absolutely correct using set of source files. Even if "Source file must match" option is unset in VS Debugging options, VS doesn't care when loading .DMP files - it wont load the symbols if sources files don't match.
  • 链接地址: http://www.djcxy.com/p/95386.html

    上一篇: Visual Studio没有为此文档加载符号

    下一篇: 调试.DMP时,Visual Studio 2008不加载符号