Microsoft KB Archive/304989

= PRB: Visual C++ Debugger Cannot Read System Symbols on Windows XP =

Article ID: 304989

Article Last Modified on 10/20/2003

-

APPLIES TO


 * Microsoft Visual C++ 6.0 Service Pack 5, when used with:
 * Microsoft Windows XP Professional

-



This article was previously published under Q304989



SYMPTOMS
When you use the Visual C++ 6.0 debugger on a Windows XP-based computer, the debugger is not able to load symbols for Windows system .dll files even though you have Windows XP system symbols correctly installed. As a result, you will not be able to see the function names of Windows APIs in the callstack.



CAUSE
Windows XP system symbols are distributed only as .pdb files, whereas system symbols for Windows NT and Windows 2000 are distributed as both .dbg and .pdb files. When the Visual C++ 6.0 debugger was written, this change was not anticipated. Therefore, the debugger does not search for .pdb files in the \Symbols\dll folder, it looks only for the .dbg files.



RESOLUTION
WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

There are two ways to work around this problem:  Move each .pdb file to the directory where the corresponding system .dll file is located. Typically, Windows system .dll files are in the \System32 folder. The other method involves adding a registry key by using Regedit.exe:  Create a new string value, Pdb Dirs, if you do not see it under the following registry key:

HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Directories

 Double click Pdb Dirs. The Edit String dialog box will appear. In the Value data edit box, add the path (or paths) to the folders where the .pdb files are located. For example:

C:\Windows\Symbols\dll

Multiple paths are separated by the semicolon (&quot;;&quot;) character. For example:

C:\Windows\Symbols\dll;C:\Windows\Symbols\ocx

</li> Click OK to close the Edit String dialog box.</li></ol> </li></ul>

<div class="status_section">

STATUS
This behavior is by design.

Keywords: kbbug kbide kbdebug kbprb KB304989

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.