Microsoft KB Archive/222103

{|
 * width="100%"|

PRB: IMAGEHLP Symbol Handler Functions and Microsoft Visual C++ 6.0 .pdb Files

 * }

Q222103

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), included with:
 * Microsoft Windows NT Server version 4.0
 * Microsoft Windows NT Workstation version 4.0
 * Microsoft Windows 98
 * Microsoft Windows 95

-

SYMPTOMS
When an executable file or a DLL is generated with CodeView debug information in a .pdb file using Microsoft Visual C++ 6.0, the IMAGEHLP symbol handler functions fails. The IMAGEHLP APIs, such as SymGetSymFromAddr or SymGetLineFromAddr fails with a GetLastError of 487 (ERROR_INVALID_ADDRESS).

CAUSE
The .pdb file format has been changed in Microsoft Visual C++ 6.0. The IMAGEHLP 4.0 DLL version shipped with Microsoft Windows NT 4.0 cannot read Microsoft Visual C++ 6.0 .pdb files.

RESOLUTION
The latest version of the IMAGEHLP libraries supports Microsoft Visual C++ 6.0 .pdb files. This version can be obtained from the Platform SDK. For the redistribution policy, please refer to the Platform SDK license information.

MORE INFORMATION
Version 4.0 of the IMAGEHLP DLL can be used if the debug information is either embedded within the executable file or stripped and placed in a .dbg file. The symbol handler functions will fail only when the CodeView debug information is generated in the .pdb file symbol format.