Homepage Software Knowledge base Links Feedback
         

How to get pdb files from msdl.microsoft.com

16 July 2008

In some cases WinDbg/IDA fails to fetch pdb files for Microsoft-provided binary. In that case manual fetch can help.

  1. Open WinDbg and load the executable in it. Wait it to break into command mode.
  2. Type:

    !lmi <exename>

    Note the GUID and Age values.

  3. Using wget fetch the pdb file:

    wget -U "Microsoft-Symbol-Server/6.9.0003.113" http://msdl.microsoft.com/download/symbols/<exename>.pdb/GUIDAGE/<exename>.pd_

    User-Agent value is required: Microsoft has server-side check for this. That is why simple browser download won't work unless its UA is patched. GUIDAGE is concatenation of GUID (strip dashes) and AGE values.

  4. Uncompress the file with expand.exe:

    expand <exename>.pd_ <exename>.pdb
  5. To use PDB in IDA place the file in the IDA database directory and launch File->Load file->PDB file.

For dynamic link library loading into WinDbg one can use loadmod application I wrote.

For example SQL Server 2005 main executable (file version 2005.90.3054.0) download command:

wget -U "Microsoft-Symbol-Server/6.9.0003.113" http://msdl.microsoft.com/download/symbols/sqlservr.pdb/AD97EA6A06B44413BDC2B69C19B1733A2/sqlservr.pd_
     
  Copyright © 2005-2009 Martin Rakhmanov