Question
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
Support.dll
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] PDB: ""
[SYMCHK] CV: RSDS
[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] PDB Matched: TRUE
[SYMCHK] DBG Matched: TRUE
[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
\CNCSupport.dll"
SYMCHK: CNCSupport.dll FAILED - CNCSupport.pdb mismatched or not found
SYMCHK: FAILED files = 1
SYMCHK: PASSED + IGNORED files = 0
Output of DBH:
C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64>dbh c:\qa\pcdlrn\cncserver
\win32\debug\cncsupport.dll
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.
Replies
i1friend on Thu, 23 May 2013 06:54:37
try this: http://blogs.msdn.com/b/junfeng/archive/2007/11/05/mismatched-pdbs-why.aspx
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.
Reference:
http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/86125819-426b-4794-948d-d2252f46aedf
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
- Please run your VS as the admin.
- Check the Project Properties > Configuration Properties -> Debugging -> Working Directory.
- 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 =)
[]s