Debugger error: symbol file could not be found

  • Thread starter =?ISO-8859-1?Q?Ney_Andr=E9_de_Mello_Zunino?=
  • Start date
?

=?ISO-8859-1?Q?Ney_Andr=E9_de_Mello_Zunino?=

Hello.

I would appreciate if somebody could assist me with an error message I
am getting from the Microsoft WinDbg 6.3 debugging tool. I am not
familiar with it, since I have just downloaded it. However, I did check
the compiler (cl.exe) and linker (link.exe) documentation for the
options I should use in order to get debugging information to be
generated. The test program consists of a single .cpp file. Here are the
command lines I used for compiling and linking:

cl /Zi /c /nologo /EHs teste.cpp

and

link /debug /nologo /subsystem:console /out:teste.exe teste.obj

The compilation process resulted in the creation of a vc70.pdb file. The
linker, on its turn, generated one called teste.pdb. Ok, next I started
the debugger and set the symbols path from the /file/ menu. Then I chose
to /open executable/ and selected /teste.exe/. Here is the output shown
on the console:

*** Beginning of output ***

CommandLine: D:\Temp\teste\teste.exe
Symbol search path is: D:\Temp\teste
Executable search path is:
ModLoad: 00400000 00429000 teste.exe
ModLoad: 7c900000 7c9b0000 ntdll.dll
ModLoad: 7c800000 7c8f4000 C:\WINDOWS\system32\kernel32.dll
(7f8.360): Break instruction exception - code 80000003 (first chance)
eax=00241eb4 ebx=7ffde000 ecx=00000000 edx=00000001 esi=00241f48
edi=00241eb4
eip=7c901230 esp=0012fb20 ebp=0012fc94 iopl=0 nv up ei pl nz na
pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000
efl=00000202
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for ntdll.dll -
ntdll!DbgBreakPoint:
7c901230 cc int 3

*** End of output ***

Notice the ERROR saying that the symbol file could not be found. What
symbol file is it talking about? I don't think it is my program's symbol
file, because if I don't set the symbols path in advance, other "can't
find symbol file" messages come up. Is it referring to Windows'
libraries' symbols? Any clue? Sorry, but I am kind of new at this.

Thank you very much,
 
B

Ben Schwehn

*** ERROR: Symbol file could not be found. Defaulted to export symbols
for ntdll.dll -
ntdll!DbgBreakPoint:
7c901230 cc int 3

*** End of output ***

Notice the ERROR saying that the symbol file could not be found. What
symbol file is it talking about? I don't think it is my program's symbol
file, because if I don't set the symbols path in advance, other "can't
find symbol file" messages come up. Is it referring to Windows'
libraries' symbols? Any clue? Sorry, but I am kind of new at this.


Ney André,

the error just says that WinDbg doesn't find the symbols for ntdll.dll.
This is probably because you just don't have them :)

If you need the symbols for ntdll.dll etc., the easiest way to get them
is to use the Microsoft Symbol Server by creating an Enviroment Variable
_NT_SYMBOL_PATH with a value of
symsrv*symsrv.dll*f:\symbols*http://msdl.microsoft.com/download/symbols
[like this, with stars and all]
(replace f:\symbols with a local path of your preference.
This will (or should :) ) cause Windbg to download all windows system
file symbols available in the exact right version you're using (eg
Service Pack etc). The symbols are then cached locally. Of course you'll
need Internet access for it to work.

There are some smbol file related options in WinDbg, look at the
helpfile for !sym and !symsrv.

If you're not interested in the system file symbols, just ignore the
warning.

I personally only set _NT_SYMBOL_PATH when I really need to have the
system symbols and disbale it by setting it to _NT_SYMBOL_PATH_XXX when
I don't since loading all the symbols takes time, even if already
downloaded.

hth
 
?

=?ISO-8859-1?Q?Ney_Andr=E9_de_Mello_Zunino?=

Ben said:
the error just says that WinDbg doesn't find the symbols for ntdll.dll.
This is probably because you just don't have them :)

If you need the symbols for ntdll.dll etc., the easiest way to get them
is to use the Microsoft Symbol Server by creating an Enviroment Variable
_NT_SYMBOL_PATH with a value of
symsrv*symsrv.dll*f:\symbols*http://msdl.microsoft.com/download/symbols
[like this, with stars and all]
(replace f:\symbols with a local path of your preference.

[...]

Thanks a lot, Ben, for your explanations. I will follow your advice and
only load the system symbols when I have a real need for them.

Best regards,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top