BUG: Problems with Visual C++ 6.0 .pdb File in Visual Studio .NET Debugger (318135)



The information in this article applies to:

  • Microsoft Visual C++ .NET (2002)

This article was previously published under Q318135

SYMPTOMS

When you use the Microsoft Visual Studio .NET debugger to debug a module (for example, an .exe file or a .dll file) that was created by using Microsoft Visual C++ version 5.0 or 6.0, you may experience the following problems:
  • When you click to expand a pointer variable in the Watch window, you may see only blank items. Alternately, the plus sign (+) may not be available.
  • The debugger may report that no variable information is found when you try to view a variable in the Watch window.
  • You may receive error CXX0033 for global variables. In addition, you may receive one of the following error messages:
CXX0017:Error:symbol "symbol name" not found

-or-

CXX0033:Error:error in OMF type information

CAUSE

These problems can occur if you build the .exe or the .dll file with the -pdbtype:sept linker option. This is the default option for the Win32 Debug build in the integrated development environment (IDE) of Visual C++ versions 5.0 and 6.0.

If you use this option, the debug information is distributed in the following files:
  • The Vc60.pdb file (or Vc50.pdb for Visual C++ 5.0) that the compiler generates.
  • The ProjectName.pdb file that the linker generates.
The Visual Studio .NET debugger cannot read the types from the separate type pools created by the VC6 linker with /pdbtype:septypes.

RESOLUTION

To resolve this problem, disable the -pdbtype:sept linker option as follows:
  1. Open the project in the Visual C++ IDE for Win32 Debug build.
  2. On the Project menu, click Settings, and then click the Link tab.
  3. In the Category list, click Debug.
  4. Clear the Separate types check box, and then click OK.
  5. On the Build menu, click Rebuild All.
When you use this method to build .exe or .dll files, your files do not depend on the .pdb file that the compiler generates for symbolic debug information.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

Modification Type:MinorLast Reviewed:1/13/2004
Keywords:kbBug kbDebug kbide kbpending KB318135 kbAudDeveloper