Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

no PDB file for ntdll.dll

Tags:

visual-c++

Trying to debug dll project I developing. I got message box Debugging information for 'ntdll.dll' cannot be found or does not match. Cannot find or open the PDB file while trying to load this dll with host application. How to solve this problem?

After some experiments and setting VS2010 to get symbols from server I have following message while buildind dll:

DEMO.exe': Loaded 'C:\Windows\System32\ntdll.dll', Symbols loaded (source information stripped). DEMO.exe': Loaded 'C:\Windows\System32\mscoree.dll', Symbols loaded (source information stripped). DEMO.exe': Loaded 'C:\Windows\System32\kernel32.dll', Symbols loaded (source information stripped). DEMO.exe': Loaded 'C:\Windows\System32\KernelBase.dll', Symbols loaded (source information stripped).

But still have described messagebox while run debug.

like image 319
vico Avatar asked Nov 14 '12 16:11

vico


People also ask

Can not find the PDB file?

Try go to Tools->Options->Debugging->Symbols and select checkbox "Microsoft Symbol Servers", Visual Studio will download PDBs automatically. PDB is a debug information file used by Visual Studio. These are system DLLs, which you don't have debug symbols for.

What is PDB file with DLL?

Program database (PDB) is a file format (developed by Microsoft) for storing debugging information about a program (or, commonly, program modules such as a DLL or EXE). PDB files commonly have a . pdb extension. A PDB file is typically created from source files during compilation.

Where are PDB files located?

pdb file stores all debug information for the project's .exe file, and resides in the \debug subdirectory.


1 Answers

There are multiple options you can have.

  1. Download symbol package provided by microsoft. This will download PDB for all system libraries. Extract it to "c:\symbolcache"
  2. Set symbol path to SRV*c:\symbolcache*http://msdl.microsoft.com/download/symbols. In this case this will download PDB files and store them into "c:\symbolcache" if not present.

Then you have to set "c:\symbolcache" as your symbol file path into whatever crash dump analysis tool you are using.

like image 199
Elixir Techne Avatar answered Oct 04 '22 08:10

Elixir Techne