Search code examples
c++windowsdebuggingvisual-studio-2015windbg

Forcing to load unmatched symbols in Visual Studio 2015 debugger


I am debugging a user mode crash dump file with Visual studio 2015. However the symbols don't match.

In WinDbg there is a command line .reload /f /i where the /i ignores the timestamp which binds the PDB files to executable. Is there something similar in Visual Studio debugger so it ignores the timestamp on PDB files and load these files?

Is there even a command line and commands with Visaul Studio 2015 debugger that I can get more control? Also I couldn't find where can I set the source code path. Is it possible?

Below is the screen where symbol path is given. There is no place to enter (any) flag to force it to load these symbols. I know it is not most appropriate to force unmatched symbols but I just don't have the original symbols.

Screen shot of symbol settings - no place to enter flag to force it to load


Solution

  • A command like .reload /i is not available in Visual Studio.

    If you have no other choice, use ChkMatch (archived). It has a command line switch (-m) which modifies the PDB file to match the executable.

    Be very careful with such modified PDBs, since e.g. WinDbg will also accept them and no longer warn you that you might have inexact results. My advise is:

    • delete such files immediately after the debug session or
    • put them into a directory called ForcedMatchingSymbols or similar