2

I'm following this post to set my IDA symbol path How to configure IDA to load .pdb files from Microsoft public symbol server?

I added a system variable called _NT_SYMBOL_PATH with value SRV*\C:\Symbols*http://msdl.microsoft.com/download/symbols My local directory c:\symbols has all the pdb files needed

and here is my pdb.cfg

// PDB plugin

// PDB information provider
#define PDB_PROVIDER_MSDIA  1   // use MSDIA local/remote provider
#define PDB_PROVIDER_PDBIDA 2   // use PDBIDA provider
//PDB_PROVIDER = PDB_PROVIDER_PDBIDA

// it is possible to specify the desired provider in the command line:
//      ida -Opdb:off input_file
//      ida -Opdb:msdia input_file
//      ida -Opdb:pdbida input_file

// Symbol search path
// The _NT_SYMBOL_PATH environment variable overrides this setting.
// If none of these variables is set then the default value will be used:
// "SRV*CACHEDIR*http://msdl.microsoft.com/download/symbols"
// where
//   CACHEDIR=%TEMP%\ida  for Windows
//   CACHEDIR=$TMPDIR/ida or $TMP/ida or /tmp/ida for non-Windows OSes
//
_NT_SYMBOL_PATH = "SRV*c:\\symbols*http://symbols.mozilla.org/firefox;SRV*c:\\symbols*http://msdl.microsoft.com/download/symbols";

// PDBIDA is able to load MSF 7.0 PDB files only.
// MSDIA can load all PDB files, including old MSF 2.0 files.
// If you set the following option to YES, IDA will automatically switch
// to MSDIA for old files.
// Please note that under Linux/macOS the MSDIA provider requires you to configure
// the win32_remote.exe server because it can run only on Windows.
// It is possible to specify the desired behavior in the command line:
//      ida -Opdb:fallback input_file
//      ida -Opdb:nofallback input_file
PDB_MSDIA_FALLBACK = NO

// remote server where win32_remote.exe is running
// used when loading PDB symbols on non-Windows platforms
// NB: it will be used only if there is not already an existing debugging session started
PDB_REMOTE_SERVER = "localhost";
PDB_REMOTE_PORT   = 23946
// password for the remote server
PDB_REMOTE_PASSWD = "";

I restarted IDA The error message is

: failed to load pdb info.

And IDA is asking to specify which pdb file I want to load. However, I don't know which pdb file is responsible for the file(dns.exe) that I'm debugging.

Any ideas?

I loaded all the symbols finally. I type dns.exe in 'load pdb' file tab and IDA loaded automatically. I guess the debug directory is specified in the file. Some of function names are pretty weird. My question is can IDA load unmatched pdb files in this case or I'm good to go?

3
  • Well, does the PE file (dns.exe) even have a debug directory? To me the message would suggest that there is none and consequently it wouldn't know how/where to look for the PDB.
    – 0xC0000022L
    Commented Oct 18, 2022 at 8:14
  • @0xC0000022L I typed dns.exe and IDA loaded symbols automatically. So I guess the debug directory is specified in the file? I have updated the post Commented Oct 20, 2022 at 5:53
  • If the debug directory is in the file and IDA is configured to use DIA, this should work out of the box. But you haven't mentioned the IDA version or what OS you are on. I was therefore assuming it's Windows. But if it's not it might obviously behave different from how it does with DIA on Windows. But I haven't had firsthand experience for the Linux and Mac versions since Hex-Rays stopped giving all OS versions in a single license. I am only using IDA via Crossover or Wine on Linux and otherwise on Windows.
    – 0xC0000022L
    Commented Oct 20, 2022 at 6:55

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.