Incremental repositories in Visual C++

Program database files (PDBs) and incremental database files (IDBs) are built up with information from compilations of many .c or .cpp source files. This type of database file is referred to as an incremental repository.

The consequence of using these incremental repositories is that object files cannot be winked in without making the PDB/IDB out of date. There is no way to wink in a portion of a file, a feature that would be required to wink in the object and the section of the PDB/IDB that holds the debug information for that specific object. For this reason, the SCC integration disables winkin for targets with a PDB or IDB sibling DO.
Note: The cleartool winkin command can be used to wink in these objects manually; this method is described in Using the winkin command.

Alternative: using C7 compatible debug information

The C/C++ compiler generates debug information in two different ways:

  • C7 - information (/Z7 parameter from the command line) which is compatible with the V7 compiler. Debug information is stored in resultant object files.
  • Create one or more .PDB files that store the debug information.

C7-style debug information is the ideal choice when using clearmake or omake because the information is stored directly in the object file. Because no files are shared by builds of multiple targets, winkin is automatic. If you use multiple views to build the same versions of files, this method is the most advantageous way of working. Automatic winkin means that clearmake or omake shops in the VOB for similar DOs and determines whether the previously built DO is the same as that produced by executing the build script of the target. If they are the same, the target build previously winked in (an operation that is in most cases faster than executing the build script), and the two views share a single disk image of the target file.

Base the decision on which debug information style to use on whether PDBs are necessary, whether other necessary features require PDBs (some types of precompiled headers and incremental compiles, for example), and whether an appropriate DO in your environment might exist and be shareable.

Switching between PDBs and C7 debug information is simple. In the Visual C++ IDE:
  1. Click Project > Settings.
  2. Select the debug target in the Settings For tree.
  3. Click the C/C++ tab.
  4. In the Category list, click General.
  5. In the Debug Info list, click either Program Database or C7 Compatible.