Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SYMSTORE.exe skipping PDB's - unsupported format

991 views
Skip to first unread message

consultutah

unread,
Oct 25, 2006, 3:56:03 PM10/25/06
to
I am trying to create a symbol server and whenever I run:

?> symstore add /r /f \sd\product\bin\prod\*.* /s \\symbols\productsymbols
/t "prod" /v "version" /C "date"

It correctly stores all of the dll's and exe's, but it skips the PDB saying
"unsupported format". I've read in old news group postings that there might
have been a similar issue in the 6.5* version of Debugging Tools for Windows,
but the MSFT tech said that it would be fixed in the next release.

Is this still broken? Is it something that is going to be fixed?

These PDB's are generated with VS.NET 2003 C++ compiler. Some are mixed
C++/C#, others are pure C++. It won't work with any of them.

Thanks in advance for any help...

consultutah

unread,
Oct 25, 2006, 7:01:02 PM10/25/06
to
I may have been asking the wrong question.
-What settings should I use for C++ release builds in VS.NET 2003 to produce
the correct PDB format?
-What settings should I use for C# release builds in VS.NET 2003 to produce
the correct PDB format?

Is there a difference for VS.NET 2005?

Skywing [MVP]

unread,
Oct 25, 2006, 10:53:26 PM10/25/06
to
You should `/Zi' with cl and `/debug' with link. Are you sure these are the
output debug .pdbs and not the vcXX.pdb (e.g. vc71.pdb) PDBs in your
intermediate directory? Those PDBs are used to keep track of compiler
intermediate state data and do not have symbol information in a form
directly usable by a debugger.

--
Ken Johnson (Skywing)
Windows SDK MVP
http://www.nynaeve.net

"consultutah" <consu...@discussions.microsoft.com> wrote in message
news:E768AEB4-8E6D-41A2...@microsoft.com...

consultutah

unread,
Oct 26, 2006, 10:20:02 AM10/26/06
to
OK, so I'm using /Zi and /debug, and I get the same error. I've included the
full command lines for building the smallest DLL. Is it possible that one of
the other options is overriding /Zi and /debug?

Thanks in advance...

C:\sda\SomeProd\core\base\convert>nmake

Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.

- C:\sda\SomeProd\core\base\convert\debug\scaled_xml
cl -c -Fddebug\ -Fodebug\ -Zi -Ze -WX -GB -Gd -GX -Zp1 -nologo -vmg
-Gs -D_WIN95 -DWIN32 -DWINVER=0x0400 -W3 -MDd /CLR -wd 4562 -DDEBUG -Od -Zi
scaled_xml.cpp > scaled_xml.drr
- C:\sda\SomeProd\core\base\convert\debug\xmltrans
cl -c -Fddebug\ -Fodebug\ -Zi -Ze -WX -GB -Gd -GX -Zp1 -nologo -vmg
-Gs -D_WIN95 -DWIN32 -DWINVER=0x0400 -W3 -MDd /CLR -wd 4562 -DDEBUG -Od -Zi
xmltrans.cpp > xmltrans.drr
- C:\sda\SomeProd\core\base\convert\debug\xmltrans_ia
cl -c -Fddebug\ -Fodebug\ -Zi -Ze -WX -GB -Gd -GX -Zp1 -nologo -vmg
-Gs -D_WIN95 -DWIN32 -DWINVER=0x0400 -W3 -MDd /CLR -wd 4562 -DDEBUG -Od -Zi
xmltrans_ia.cpp > xmltrans_ia.drr
- C:\sda\SomeProd\core\base\convert\debug\xact_doc
cl -c -Fddebug\ -Fodebug\ -Zi -Ze -WX -GB -Gd -GX -Zp1 -nologo -vmg
-Gs -D_WIN95 -DWIN32 -DWINVER=0x0400 -W3 -MDd /CLR -wd 4562 -DDEBUG -Od -Zi
xact_doc.cpp > xact_doc.drr
- C:\sda\SomeProd\core\base\convert\debug\absymboltree2
cl -c -Fddebug\ -Fodebug\ -Zi -Ze -WX -GB -Gd -GX -Zp1 -nologo -vmg
-Gs -D_WIN95 -DWIN32 -DWINVER=0x0400 -W3 -MDd /CLR -wd 4562 -DDEBUG -Od -Zi
absymboltree2.cpp > absymboltree2.drr
linking CONVERT70.DLL
link -debug -OPT:NOWIN98 > link.drr
@C:\DOCUME~1\jdl\LOCALS~1\Temp\nm21
1C.tmp

C:\sda\SomeProd\core\base\convert>symstore add /o /r /f
c:\sda\SomeProd\bin\debug\CONVERT70.pdb /s c:\temp\symbols /t "test"
SYMSTORE MESSAGE: 0 alternate indexers registered
SYMSTORE MESSAGE: LastId.txt reported id 4
SYMSTORE MESSAGE: Final id is 0000000004
SYMSTORE MESSAGE: Skipping c:\sda\SomeProd\bin\debug\CONVERT70.pdb -
unsupported format.

SYMSTORE: Number of files stored = 0
SYMSTORE: Number of errors = 0
SYMSTORE: Number of files ignored = 1

consultutah

unread,
Oct 26, 2006, 10:39:01 AM10/26/06
to
So here is further evidence that I don't know what I'm doing.

Test.cpp is:
#using <mscorlib.dll>
void main() { System.Console.WriteLine("Hello"); }

I compile it with VS.NET 2003
?> cl /CLR /Zi test.cpp /link /DEBUG

I then try to store the PDB:
?> symstore add /o /f test.pdb /s c:\temp\symbols /t "test"


SYMSTORE MESSAGE: 0 alternate indexers registered

SYMSTORE MESSAGE: LastId.txt reported id 10
SYMSTORE MESSAGE: Final id is 0000000010
SYMSTORE MESSAGE: Skipping .\test.pdb - unsupported format.

SYMSTORE: Number of files stored = 0
SYMSTORE: Number of errors = 0
SYMSTORE: Number of files ignored = 1

Can someone please get me started in the right direction? I'm obviously
missing something basic.

consultutah...@discussions.microsoft.com

unread,
Oct 30, 2006, 5:34:01 PM10/30/06
to
Thought I'd try logging in with my "managed newsgroup" msdn account to see if
I could get an answer in 2 days... ;-)

I've tried adding .PDB's built with both the 2003 and 2005, both VC++ mixed
mode PDB's and C# PDB's and can't get any to work. I get the unsupported
format error no matter what I do. Therefore I assume that I am doing
something horribly wrong.

How do I produce PDB's that SYMSTORE can support?

Here was my latest attempt:

Test.cpp is:
#using <mscorlib.dll>
void main() { System.Console.WriteLine("Hello"); }

I compile it with VS.NET 2003 or 2005
?> cl /clr /Zi test.cpp /link /DEBUG

consultutah...@discussions.microsoft.com

unread,
Oct 31, 2006, 10:07:02 AM10/31/06
to
Skywing helped me off list to figure out the problem.

What was happening is that I had a few versions of dbghelp.dll on my system
and one of them was getting picked up in my path before the one from the
latest drop of "Debugging Tools for Windows".

So, if for some reason, you can't get SYMSTORE to add your PDB's, check your
path to see if you have an old version of dbghelp.dll that is getting
picked-up first. If you have which on your system, just use which -a
dbghelp.dll and it will give you a list of where it is and which order it is
getting picked up.

0 new messages