lara400
lara400

Reputation: 4736

Symbols not being loaded in Windbg

I downloaded the x86 symbols from Microsoft (and installed it) - I then added the sympath of

.symfix C:\Temp\Symbols\X86

I then do a check on this: - why is it adding a URL when I did not specify?

1: kd> .sympath 
Symbol search path is: srv* 
Expanded Symbol search path is: SRV*C:\Temp\Symbols\X86*http://msdl.microsoft.com/download/symbols

This is where my symbols are - however when I open a crash dump I am still getting error not symbols found.

The problem is I do not have internet access on my machine so I do not want it to go out and search for symbols when it cannot.

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe - 
Loading Kernel Symbols
...............................................................
................................................................
..
Loading User Symbols
PEB is paged out (Peb.Ldr = 7ffd900c).  Type ".hh dbgerr001" for details
Loading unloaded module list
.....................................

************* Symbol Loading Error Summary **************
Module name            Error
ntkrpamp               The system cannot find the file specified

You can troubleshoot most symbol related issues by turning on symbol loading diagnostics (!sym noisy) and repeating the command that caused symbols to be loaded.
You should also verify that your symbol search path (.sympath) is correct.

Upvotes: 0

Views: 20668

Answers (2)

nobody
nobody

Reputation: 20163

It's doing that because that's what the .symfix command is supposed to do. Documentation

The command you should be running to add a local directory to your symbol path is:

.sympath+ C:\Temp\Symbols\X86

Upvotes: 2

Patrick Quirk
Patrick Quirk

Reputation: 23747

The .symfix command always inserts the Microsoft public symbol store into your path; that's why it's called "fix". From the documentation:

The .symfix command automatically sets the symbol path to point to the Microsoft symbol store.

Your command was setting the symbol path to use the Microsoft server and then cache any symbols it pulled from it into C:\Temp\Symbols\X86.

Instead, you just need to set the symbol path explicitly to be where you downloaded the symbols:

.sympath C:\Temp\Symbols\X86

Then reload symbols with .reload /f /d /v and look for any that could not be loaded. Successfully loaded modules will look like this:

AddImage: C:\Windows\system32\OLEAUT32.dll
 DllBase  = 000007fe`ff2d0000
 Size     = 000d7000
 Checksum = 000e0140
 TimeDateStamp = 4e587ee8

While libraries missing symbol files will appear like this:

AddImage: C:\Windows\system32\OLEAUT32.dll
 DllBase  = 000007fe`ff2d0000
 Size     = 000d7000
 Checksum = 000e0140
 TimeDateStamp = 4e587ee8
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\system32\OLEAUT32.dll - 

I'd encourage you to read more about symbol path syntax as it can be difficult to understand at first.

Upvotes: 4

Related Questions