0

I am trying to open a dump file using Visual Studio 2012 but there are some PDB files missing.

Is there a way to make the debugger use another PDB file, built on my machine? Unfortunately, I can't access the original DLLs and PDBs.

I'm trying to open my PDBs using the "Browse and find ***.dll..." button but I'm getting an error message saying "a matching symbol file was not found in this folder"

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222
  • It would be much easier if you had the dll's and pdb's that matched the dump file but maybe this can help: https://stackoverflow.com/questions/744870/how-can-you-change-an-age-mismatched-pdb-to-match-properly – rene Oct 23 '17 at 15:07
  • I suggest using wlndbg and issue .loadby sos clr – Oguz Ozgul Oct 23 '17 at 15:28
  • 1
    Everybody makes this mistake once. Rebuild your app, preserve the DLLs and PDBs, and send it to your customer, along with an "I'm sorry". – Hans Passant Oct 23 '17 at 19:11
  • And some companies make that mistakes for years – Thomas Weller Oct 24 '17 at 08:13
  • It's a little bit more complicated than that. I'm using a third-party that is using another third-party and the application crashes somewhere in the second third-party. So I tried to build the second third-party myself hoping to see where the crash occurs (It's an access violation exception) – Linoy Belchich Oct 25 '17 at 07:13

1 Answers1

0

Visual Studio does not have an option to ignore mismatched symbols. Other debuggers (like WinDbg) have that.

ChkMatch is able to modify a PDB file so that Visual Studio does not recognize the difference any more. However, the result is what it is: even a slight modification might cause the compiler to emit totally different code. What you see in Visual Studio may be totally misleading. See this answer for details.

Be warned: delete the modified file immediately after your investigation or you will hunt ghost bugs sooner or later.

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