3 Using the Program Database (PDB)

The PDB is a repository of errors, warnings, diagnostic messages, and metrics generated while analyzing the application. The HP Code Advisor uses the PDB also to store the information required for the analysis. If you want to perform cross-file analysis of the application, you need to use a PDB. During the compilation phase of your application, the HP Code Advisor stores an intermediate representation of the application in the PDB and uses it during the application link phase to perform the cross-file analysis. You can use the reporting tool to see different kinds of reports from the information stored in the PDB without having to repeat the analysis phase. A single PDB can be used to store the analysis information of multiple applications. In such cases, the cross-file analysis for each application is performed when cadvise is invoked with the link command for each application.

NOTE: This does not work with the -crossfile=pdboption. Instead, the analysis logs are combined into a single report when cadvise report is used on such a PDB.

The size of the PDB is proportional to the total size of the object files created while building the application. It also depends on the number of errors and the diagnostic messages found during the analysis of the application. The size of the PDB can be three to four times more than the total size of the object files. Therefore, ensure that there is enough space in the volume or the ClearCase VOB where the PDB resides. You can also locate the PDB within a ClearCase VOB. The ClearMake dependency checking and wink-in mechanisms work with the PDB in the VOB. If the PDB is created in a View, then it is winked-in by other Views that have the matching configuration spec and build rules.

NOTE: Due to limitations in ClearCase, cadvise cannot access a PDB located on a clearcase VOB via a NFS mounted directory from a non-ClearCase machine. If you access the VOB from a non-ClearCase machine, ensure that the PDB is located on a local file system or use the -pdb_no_lockingoption. For more information, see the Problems with NFS locking section in Administrator's Guide: Rational Clearcase and Rational Clearcase LT.

The internal format of the PDB has been changed in preparation for creating PDBs in other platforms. This means that this version of cadvise is not compatible with PDBs generated by older versions of cadvise. As an example, users cannot use this version of cadvise to generate reports on PDBs generated by previous versions of cadvise. Ensure you remove the older PDBs with the-pdb_destroyoption (cadvise -pdb <location> -pdb_destroy) before you use this version of cadvise. Alternately, you can use a different location for the PDBs generated with this newer version of Cadvise. One of the following errors appear if you use Cadvise with an incompatible PDB:

cannot open PDB collection "<name>" (Error: Incompatible PDB version)

cannot open PDB element "<name>" (Error: Incompatible PDB version)

found problem while traversing PDB (Error: Incompatible PDB version)

NOTE: We try to make changes to the PDB format in a way that preserves forward compatibility

(ie: a PDB generated by an older version of cadvise can be used by a new version of cadvise). However, it is not guaranteed that all the format changes will be forward compatible. In some cases we are forced to break such forward compatibility in order to support new features.

The organization and the internal format of the PDB may change from release to release. Hence, it is not advisable to directly manipulate the content of the PDB. However, the PDB can be safely copied to different directory by using a recursive copy command (cp –R).

19