Salesforce

What is the purpose of .PDB files?

« Go Back

Information

 
TitleWhat is the purpose of .PDB files?
URL NameP178951
Article Number000133004
EnvironmentProduct: OpenEdge
Versions: 10.1C02, 10.2B, 11.x, 12.x
OS: Windows
Question/Problem Description

What are PDB files, and when should they be used?
How to assure reliable debugging information is populated in a Windows protrace file?
What are the PDB files provided with Windows Install media?
Where to find pdb files?
Are .pdb files changed between FCS and Service Packs?
When a Hotfix is applied do the %DLC%\pdbfiles need to be updated?

 

Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution

PDB files are symbol files for Windows-based executable's. Without these files, it's not possible to get a readable C-level stack trace from the OpenEdge executable's on Windows platforms.

Progress PDB files can be used with the Windows debugger to unwind the C-level call stack when analysing memory dumps, which in a number of cases contains valuable information to assist with understanding and eventually resolving the problem under investigation. 

It is important that the pdbfiles used to unwind the stack trace must match the exact OpenEdge release used: Version & Service Pack & Hotfix. When the wrong version is used or when they are not available in the install directory, incorrect symbol mapping will result providing an invalid stack trace from which reliable conclusions cannot be drawn.

Assuring that the PDB files are in place is part of an OpenEdge Deployment procedure. This assures that in addition to a properly unwound call stack, they also provide as much information as possible about what the executable was doing at the time. Without symbol files, the stack information in a protrace file is effectively limited to the session startup parameters and if applicable, the ABL stack and list of Persistent procedures/Classes.

  • Since OpenEdge 10.1C02 and 10.2B, our PDB files are shipped with the installation media for Windows
  • With OpenEdge Major version (FCS) and Service Packs (SP), our pdb files are provided with the install media in a separate "pdbfiles" subdirectory.
  • Prior to OpenEdge 12PDB files are not installed with the product. They need to be manually copied from the install media to the installation directory %DLC%\pdbfiles
  • OpenEdge 12 provides an Option to copy the pdbfiles during installation which we recommend should be used.
  • OpenEdge 12 Silent installs, will unpack the pdb files into %DLC%\pdbfiles when this Option is configured to be used:
    [Configuring / Installing Components Dialog]
    InstallingPdbFiles=1
  • With OpenEdge Hotfixes, pdbfiles are provided in a pdbfiles subdirectory within the hotfix archive. As part of extracting the hotfix archive into %DLC% creates the pdbfiles subdirectory under DLC. For further information refer to Article How to apply a Progress OpenEdge Hotfix  

To enable a readable C-level stack trace in a protrace file:

  1. Prior to OpenEdge 12 or if the option to unpack pdb files was not enabled, copy the "pdbfiles" directory from the installation media into the OpenEdge installation directory: %DLC%\pdbfiles\*
  2. For OpenEdge 10.2B 32-bit, copy the dbghelp.dll from the Debugging Tools for Windows to the OpenEdge %DLC%\bin directory. This is no longer necessary since OpenEdge 11.0 and later where the correct dbghelp.dll file is shipped as part of the install procedure.
  • Starting with OpenEdge 10.2B 32-bit, .pdb files are used to provide a readable C-level stack trace into a protrace file.
  • Specific to OpenEdge 10.2B 64-bit - the first Windows 64-bit product release was never setup to use the PDB files to get a readable C-level stack trace into a protrace file. This means that the protrace C-Stack information will not resolve even when the correct PDB files are in place.  Memory dump files are needed instead as with previous 32-bit versions (see below). Since OpenEdge 11.0 64-bit,  .pdb files are setup to write the C-stack process information when a protrace is generated.
Further information and guidance on interpreting the information provided in a protrace in the following Articles:
For assistance in analysing protrace files, open a Support Case providing the associated evidence.

To obtain readable traces from Windows minidump (.dmp) files 
To resolve internal functions correctly, use the .pdb files in combination with the Debugging Tools for Windows available in the Windows Driver Kit:

https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk  

  • For OpenEdge 10.2B - once the download has completed, the dbghelp.dll that needs to be copied to %DLC%\bin can be found under:
[installdir] > Windows Kits > 10 > Debuggers
  • To be able to extract Windows .dmp files, follow the instruction for 'As a standalone tool set':
  1.  Install the Windows SDK 
  2. During the install select the Debugging Tools for Windows box and clear all the other boxes.

 

Workaround
Notes
Keyword Phrase
Last Modified Date11/4/2021 7:28 PM

Powered by