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

ID: Q222103


The information in this article applies to:
  • Microsoft Win32 Application Programming Interface (API), included with:
    • Microsoft Windows NT 4.0
    • Microsoft Windows versions 95, 98


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

For additional information, please see the following article(s) in the Microsoft Knowledge Base:

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

Additional query words:

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


Last Reviewed: December 29, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.