vs2012 is generating mismatched PDB/DLLs

Category: visual studio general


markf78 on Wed, 22 May 2013 02:58:37

I cannot figure out why Visual Studio 2012 is generating a mismatched PDB/DLL combination for my DLL, cncsupport.dll. I've tried rebuilding the application multiple times but nothing seems to help. I did not have this problem until I upgraded to 2012.

Platform toolset is Visual Studio 2012 - Windows XP (v110_xp)

Use MFC in a Shared DLL, No ATL or CLR

Output of symchk:

C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64>symchk /v c:\qa\pcdlrn\cnc
server\win32\debug\cncsupport.dll /s c:\qa\pcdlrn\cncserver\win32\debug
[SYMCHK] Searching for symbols to c:\qa\pcdlrn\cncserver\win32\debug\cncsupport.
dll in path c:\qa\pcdlrn\cncserver\win32\debug
DBGHELP: Symbol Search Path: c:\qa\pcdlrn\cncserver\win32\debug
[SYMCHK] Using search path "c:\qa\pcdlrn\cncserver\win32\debug"
DBGHELP: No header for c:\qa\pcdlrn\cncserver\win32\debug\CNCSupport.dll.  Searc
hing for image on disk
DBGHELP: c:\qa\pcdlrn\cncserver\win32\debug\CNCSupport.dll - OK
DBGHELP: c:\qa\pcdlrn\cncserver\win32\debug\CNCSupport.pdb - mismatched pdb
DBGHELP: c:\qa\pcdlrn\cncserver\win32\debug\dll\CNCSupport.pdb - file not found
DBGHELP: c:\qa\pcdlrn\cncserver\win32\debug\symbols\dll\CNCSupport.pdb - file no
t found
DBGHELP: Couldn't load mismatched pdb for c:\qa\pcdlrn\cncserver\win32\debug\CNC
DBGHELP: CNCSupport - no symbols loaded
[SYMCHK] MODULE64 Info ----------------------
[SYMCHK] Struct size: 1680 bytes
[SYMCHK] Base: 0x0000000010000000
[SYMCHK] Image size: 1642496 bytes
[SYMCHK] Date: 0x519c261f
[SYMCHK] Checksum: 0x00000000
[SYMCHK] NumSyms: 0
[SYMCHK] SymType: SymNone
[SYMCHK] ModName: CNCSupport
[SYMCHK] ImageName: c:\qa\pcdlrn\cncserver\win32\debug\CNCSupport.dll
[SYMCHK] LoadedImage: c:\qa\pcdlrn\cncserver\win32\debug\CNCSupport.dll
[SYMCHK] CV DWORD: 0x53445352
[SYMCHK] CV Data:  C:\QA\Pcdlrn\CNCSERVER\Win32\Debug\CNCSupport.pdb
[SYMCHK] PDB Sig:  0
[SYMCHK] PDB7 Sig: {2BA2C45D-A2E9-471E-9AC7-FF104A4D2DAA}
[SYMCHK] Age: 1
[SYMCHK] Line nubmers: FALSE
[SYMCHK] Global syms:  FALSE
[SYMCHK] Type Info:    FALSE
[SYMCHK] ------------------------------------
SymbolCheckVersion  0x00000002
Result              0x00010001
DbgFilename         CNCSupport.dbg
DbgTimeDateStamp    0x00000000
DbgSizeOfImage      0x00000000
DbgChecksum         0x00000000
PdbFilename         C:\QA\Pcdlrn\CNCSERVER\Win32\Debug\CNCSupport.pdb
PdbSignature        {2BA2C45D-A2E9-471E-9AC7-FF104A4D2DAA}
PdbDbiAge           0x00000001
[SYMCHK] [ 0x00000000 - 0x00010001 ] Checked "c:\qa\pcdlrn\cncserver\win32\debug
SYMCHK: CNCSupport.dll       FAILED  - CNCSupport.pdb mismatched or not found

SYMCHK: FAILED files = 1

Output of DBH:

C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64>dbh c:\qa\pcdlrn\cncserver

cncsupport [1000000]: info

    SizeOfStruct : 0x690
     BaseOfImage : 0x1000000
       ImageSize : 0x1000000
   TimeDateStamp : 0x519c261f
        CheckSum : 0x0
         NumSyms : 0x0
         SymType : SymNone
      ModuleName : cncsupport
       ImageName : c:\qa\pcdlrn\cncserver\win32\debug\cncsupport.dll
 LoadedImageName : c:\qa\pcdlrn\cncserver\win32\debug\cncsupport.dll
   LoadedPdbName :
           CVSig : 0x53445352
          CVData : C:\QA\Pcdlrn\CNCSERVER\Win32\Debug\CNCSupport.pdb
          PdbSig : 0x0
        PdbSig70 : 0x2ba2c45d, 0xa2e9, 0x471e, 0x9a, 0xc7, 0xff, 0x10, 0x4a, 0x4
d, 0x2d, 0xaa
          PdbAge : 0x1
    PdbUnmatched : false
    DbgUnmatched : false
     LineNumbers : false
   GlobalSymbols : false
        TypeInfo : false
   SourceIndexed : false
   PublicSymbols : false
     MachineType : I386

Any help would be greatly appreciated. Thanks.


markf78 on Fri, 24 May 2013 03:49:53

Apparently, the PDB files work correctly in RELEASE configuration but are mismatched in the DEBUG configuration.

Jack Zhai-MSFT on Fri, 24 May 2013 06:14:50

Hi  markf78,

I suggest you check the Modules window under the debug mode. There you would get some information about the symbol loading.



Best Regards,

Jack Zhai-MSFT on Tue, 28 May 2013 01:49:48

Hi markf78,

I am writing to check the status of the issue on your side. 

What about this problem now?

Would you mind letting us know the result of the suggestion?

Best Regards,

markf78 on Sun, 02 Jun 2013 02:16:41

markf78 on Sun, 02 Jun 2013 02:17:16

Jack Zhai-MSFT on Mon, 03 Jun 2013 05:28:25

Hi markf78,

If you clean and rebuild your app, did you get any error message in the Output window?

Cannot find or open the PDB file

  1. Please run your VS as the admin.
  2. Check the Project Properties > Configuration Properties -> Debugging -> Working Directory.
  3. Select the “Microsoft Symbol Servers” under TOOLS->Options->Debugging->Symbols

If still no help, to get the issue confirmed and diagnose by product team, would you please create connect report for it? You will get email notification for update.http://connect.microsoft.com/VisualStudio/feedback/CreateFeedback.aspx, if you submit it, you could share the link here, in addition, if possible, you could share me a simple sample, I will try to debug it in my side, if I get the same issue, I will help you vote it. Thanks for your understanding.

Best Regards,

markf78 on Tue, 04 Jun 2013 03:39:52

Nope, unfortunately none of these suggestions solved the problem. I always run VS as admin, my working directory was set correctly, and the MS symbol server was enabled.

Jack Zhai-MSFT on Tue, 04 Jun 2013 09:01:03

Hi markf78,

Could you share me a simple sample? Please attach your Visual Studio project, you can upload it to the sky drive, and then share the download link in your post.

If there's any concern, please feel free to let me know.

Best Regards,

Caloni on Wed, 19 Aug 2015 23:38:47

Just got stuck in the same problem, but in a C++ source that has 13 years, where its first solution was in VS 2003. Comparing the Project Properties in C/C++, Output Files, Program Database File Name, I found out that the project was pointing to the same file path that Linker, Debugging, Generate Program Database File, when the normal situation is to generate a vc120.pdb. Comparing with a new project, the "right" value can't be $(OutDir)$(TargetName).pdb (ou ProjectName), but $(IntDir)vc$(PlatformToolsetVersion).pdb. That solved the problem. I hope solve another one's problem as well =)