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

ID: Q222103


The information in this article applies to:


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.


REFERENCES

INFO: Visual C++ Project Settings and .DBG file creation

Additional query words:


Keywords          : kbAPI kbDebug kbKernBase 
Version           : winnt:4.0
Platform          : winnt 
Issue type        : kbprb 

Last Reviewed: April 9, 1999