Discussion:
Problem using Symbol Server
(too old to reply)
s***@gmail.com
2007-03-22 22:42:23 UTC
Permalink
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.

Thanks in advance,
Sean
I see the following errors when trying to use reload symbols:
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded

Here's the output from lm v m command:
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ܲ粑
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
LegalCopyright:
Skywing [MVP]
2007-03-22 23:36:30 UTC
Permalink
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.

This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.

Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Windows SDK MVP
http://www.nynaeve.net
<***@gmail.com> wrote in message news:***@d57g2000hsg.googlegroups.com...
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.

Thanks in advance,
Sean
I see the following errors when trying to use reload symbols:
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded

Here's the output from lm v m command:
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ܲ粑
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
LegalCopyright:
bindas
2007-03-23 15:43:57 UTC
Permalink
I'm generating the dump using the .dump command with the /f option
like this:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug]
"Debugger"="C:\\windows\\system32\\ntsd.exe -p %ld -e %ld -g -c
\".dump /f /a /u c:\\dumps\\jit.dmp;q\""

This is based on the article from Oleg Starodumov's debuginfo.com
website. Are you suggesting that the dump generated using the /f
option is not good enough for windbg to be able to use the pdb file
directly? Would /ma option resolve the issue I'm having. I do not want
to upload the binaries to the symbol server unless absolutely
necessary for windbg to find the symbols and there is no other way.

Thank you,
Sean

On Mar 22, 7:36 pm, "Skywing [MVP]"
Post by Skywing [MVP]
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.
This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.
Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.
Thanks in advance,
Sean
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ܲ粑
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
Oleg Starodumov
2007-03-26 08:29:05 UTC
Permalink
/ma is definitely better than /f and should be used if possible
(it puts more information into the dump, and is better supported by existing
debuggers).

Btw, if you still see the same effect with /ma, please include the complete
output of the following commands:

!sym noisy
.reload /f yourapp.exe
!lmi yourapp.exe
lmvm yourapp

--
Oleg
[VC++ MVP http://www.debuginfo.com/]

I'm generating the dump using the .dump command with the /f option
like this:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug]
"Debugger"="C:\\windows\\system32\\ntsd.exe -p %ld -e %ld -g -c
\".dump /f /a /u c:\\dumps\\jit.dmp;q\""

This is based on the article from Oleg Starodumov's debuginfo.com
website. Are you suggesting that the dump generated using the /f
option is not good enough for windbg to be able to use the pdb file
directly? Would /ma option resolve the issue I'm having. I do not want
to upload the binaries to the symbol server unless absolutely
necessary for windbg to find the symbols and there is no other way.

Thank you,
Sean

On Mar 22, 7:36 pm, "Skywing [MVP]"
Post by Skywing [MVP]
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.
This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.
Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.
Thanks in advance,
Sean
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ??
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
s***@gmail.com
2007-03-26 18:59:11 UTC
Permalink
Oleg,
Thanks for your response. Would you know if I can copy just the
ntsd.exe from "Debugging Tools for Windows" install into C:\Windows
\System32 on a XP machine and use it? The machines i'm debugging the
problem is on production machines and I may have problem installing
the debugging tools. The ntsd.exe that comes with the OS doesn't seem
to support the /ma option. Please advise.

Thanks,
Sean


On Mar 26, 4:29 am, "Oleg Starodumov" <com-dot-debuginfo-at-oleg>
Post by Oleg Starodumov
/ma is definitely better than /f and should be used if possible
(it puts more information into the dump, and is better supported by existing
debuggers).
Btw, if you still see the same effect with /ma, please include the complete
!sym noisy
.reload /f yourapp.exe
!lmi yourapp.exe
lmvm yourapp
--
Oleg
[VC++ MVPhttp://www.debuginfo.com/]
I'm generating the dump using the .dump command with the /f option
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug]
"Debugger"="C:\\windows\\system32\\ntsd.exe -p %ld -e %ld -g -c
\".dump /f /a /u c:\\dumps\\jit.dmp;q\""
This is based on the article from Oleg Starodumov's debuginfo.com
website. Are you suggesting that the dump generated using the /f
option is not good enough for windbg to be able to use the pdb file
directly? Would /ma option resolve the issue I'm having. I do not want
to upload the binaries to the symbol server unless absolutely
necessary for windbg to find the symbols and there is no other way.
Thank you,
Sean
On Mar 22, 7:36 pm, "Skywing [MVP]"
Post by Skywing [MVP]
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.
This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.
Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.
Thanks in advance,
Sean
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ??
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
s***@gmail.com
2007-03-26 19:58:08 UTC
Permalink
I was able to use the ntsd.exe from Debugging Tools for Windows after
copying dbgeng.dll and dbghelp.dll. Have my fingers crossed for the
next crash dump (with the /ma option). I'll let you know what I find
out.

Thanks,
Sean
Post by s***@gmail.com
Oleg,
Thanks for your response. Would you know if I can copy just the
ntsd.exe from "Debugging Tools for Windows" install into C:\Windows
\System32 on a XP machine and use it? The machines i'm debugging the
problem is on production machines and I may have problem installing
the debugging tools. The ntsd.exe that comes with the OS doesn't seem
to support the /ma option. Please advise.
Thanks,
Sean
On Mar 26, 4:29 am, "Oleg Starodumov" <com-dot-debuginfo-at-oleg>
Post by Oleg Starodumov
/ma is definitely better than /f and should be used if possible
(it puts more information into the dump, and is better supported by existing
debuggers).
Btw, if you still see the same effect with /ma, please include the complete
!sym noisy
.reload /f yourapp.exe
!lmi yourapp.exe
lmvm yourapp
--
Oleg
[VC++ MVPhttp://www.debuginfo.com/]
I'm generating the dump using the .dump command with the /f option
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug]
"Debugger"="C:\\windows\\system32\\ntsd.exe -p %ld -e %ld -g -c
\".dump /f /a /u c:\\dumps\\jit.dmp;q\""
This is based on the article from Oleg Starodumov's debuginfo.com
website. Are you suggesting that the dump generated using the /f
option is not good enough for windbg to be able to use the pdb file
directly? Would /ma option resolve the issue I'm having. I do not want
to upload the binaries to the symbol server unless absolutely
necessary for windbg to find the symbols and there is no other way.
Thank you,
Sean
On Mar 22, 7:36 pm, "Skywing [MVP]"
Post by Skywing [MVP]
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.
This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.
Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.
Thanks in advance,
Sean
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ??
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
s***@gmail.com
2007-03-26 21:19:43 UTC
Permalink
Oleg,
Even /ma doesn't seem to help. Here's the output of various commands.
I do not care about the size of the dump, so I'm OK with any options
to give to the .dump command. The .pdb is actually stored on the
Symbol Server located at C:\SymbolServer\. Again, If I have the .exe,
it is able to find the symbols from the Symbol Server.

Thank you,
Sean
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Loading Dump File [C:\dumps\jit_0B18_2007-03-26_17-04-05-641_0AE8.dmp]
User Mini Dump File with Full Memory: Only application data is
available

Windows XP Version 2600 (Service Pack 2) MP (2 procs) Free x86
compatible
Product: WinNt, suite: SingleUserTS
Debug session time: Mon Mar 26 17:04:05.000 2007 (GMT-4)
System Uptime: 0 days 3:26:46.847
Process Uptime: 0 days 0:00:19.000
Symbol search path is: SRV*C:\websymbols*C:\WINDOWS\Symbols*http://
msdl.microsoft.com/download/symbols;C:\SymbolServer
Executable search path is:
................
Loading unloaded module list
.....
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(ae8.ea4): Access violation - code c0000005 (first/second chance not
available)
eax=00000003 ebx=00000073 ecx=7ffffffe edx=0012f582 esi=0012f2f4
edi=004043b5
eip=77c42a16 esp=0012f2ac ebp=0012f518 iopl=0 nv up ei pl nz
na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000
efl=00000202
msvcrt!_output+0x655:
77c42a16 803800 cmp byte ptr [eax],0 ds:
0023:00000003=??
0:000> !sym noisy
noisy mode - symbol prompts on
0:000> .reload /f dbgexe.exe
SYMSRV: C:\websymbols\dbgexe.exe\46082F5D6000\dbgexe.exe not found
SYMSRV: C:\WINDOWS\Symbols\dbgexe.exe\46082F5D6000\dbgexe.exe not
found
SYMSRV: http://msdl.microsoft.com/download/symbols/dbgexe.exe/46082F5D6000/dbgexe.exe
not found
SYMSRV: C:\SymbolServer\dbgexe.exe\46082F5D6000\dbgexe.exe not found
DBGHELP: C:\Documents and Settings\guestuser\dbgexe.exe - file not
found
DBGHELP: dbgexe.exe not found in C:\SymbolServer
DBGENG: C:\Documents and Settings\guestuser\Desktop\DbgExe\Release
\dbgexe.exe - Couldn't map image from disk.
DBGHELP: No debug info for dbgexe.exe. Searching for dbg file
SYMSRV: C:\websymbols\dbgexe.dbg\46082F5D6000\dbgexe.dbg not found
SYMSRV: C:\WINDOWS\Symbols\dbgexe.dbg\46082F5D6000\dbgexe.dbg not
found
SYMSRV: http://msdl.microsoft.com/download/symbols/dbgexe.dbg/46082F5D6000/dbgexe.dbg
not found
SYMSRV: C:\SymbolServer\dbgexe.dbg\46082F5D6000\dbgexe.dbg not found
DBGHELP: .\dbgexe.dbg - file not found
DBGHELP: .\symbols\exe\dbgexe.dbg - path not found
DBGHELP: .\exe\dbgexe.dbg - path not found
DBGHELP: dbgexe.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for dbgexe.pdb - no header
information available
DBGHELP: dbgexe.pdb - file not found
*** WARNING: Unable to verify checksum for dbgexe.exe
*** ERROR: Module load completed but symbols could not be loaded for
dbgexe.exe
DBGHELP: dbgexe - no symbols loaded
0:000> !lmi dbgexe.exe
Loaded Module Info: [dbgexe.exe]
Module: dbgexe
Base Address: 00400000
Image Name: dbgexe.exe
Machine Type: 332 (I386)
Time Stamp: 46082f5d Mon Mar 26 16:38:53 2007
Size: 6000
CheckSum: 0
Characteristics: 10f
Debug Data Dirs: Type Size VA Pointer
CODEVIEW 54, 0, 6000 [Debug data not mapped] -
Can't validate symbols, if present.
Image Type: MEMORY - Image read successfully from symbol search
path.
dbgexe.exe
Symbol Type: NONE - PDB not found from symbol server.
Load Report: no symbols loaded
0:000> lm v m dbgexe
start end module name
00400000 00406000 dbgexe C (no symbols)
Loaded symbol image file: dbgexe.exe
Image path: C:\Documents and Settings\guestuser\Desktop\DbgExe
\Release\dbgexe.exe
Image name: dbgexe.exe
Timestamp: Mon Mar 26 16:38:53 2007 (46082F5D)
CheckSum: 00000000
ImageSize: 00006000
File version: 1.0.0.1
Product version: 1.0.0.1
File flags: 0 (Mask 3F)
File OS: 4 Unknown Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ܲ粑
ProductName: dbgexe Application
InternalName: dbgexe
OriginalFilename: dbgexe.EXE
ProductVersion: 1, 0, 0, 1
FileVersion: 1, 0, 0, 1
FileDescription: dbgexe MFC Application
LegalCopyright: Copyright (C) 1999
LegalTrademarks: Copyright (C) 1999

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On Mar 26, 4:29 am, "Oleg Starodumov" <com-dot-debuginfo-at-oleg>
Post by Oleg Starodumov
/ma is definitely better than /f and should be used if possible
(it puts more information into the dump, and is better supported by existing
debuggers).
Btw, if you still see the same effect with /ma, please include the complete
!sym noisy
.reload /f yourapp.exe
!lmi yourapp.exe
lmvm yourapp
--
Oleg
[VC++ MVPhttp://www.debuginfo.com/]
I'm generating the dump using the .dump command with the /f option
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug]
"Debugger"="C:\\windows\\system32\\ntsd.exe -p %ld -e %ld -g -c
\".dump /f /a /u c:\\dumps\\jit.dmp;q\""
This is based on the article from Oleg Starodumov's debuginfo.com
website. Are you suggesting that the dump generated using the /f
option is not good enough for windbg to be able to use the pdb file
directly? Would /ma option resolve the issue I'm having. I do not want
to upload the binaries to the symbol server unless absolutely
necessary for windbg to find the symbols and there is no other way.
Thank you,
Sean
On Mar 22, 7:36 pm, "Skywing [MVP]"
Post by Skywing [MVP]
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.
This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.
Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.
Thanks in advance,
Sean
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ??
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
Oleg Starodumov
2007-03-27 09:43:00 UTC
Permalink
Yes, it looks like the debugger refuses to search for symbols
if it's not given the matching executable file. I don't know of a way
to pass to the debugger more information about the modules
than with /ma command (other than may be to invoke
ntsd again to open the dump and use '.dumpcab -a' to create
a .cab with executable modules. But storing executables on
the symbol server looks like an easier option...)

Oleg

--
Oleg,
Even /ma doesn't seem to help. Here's the output of various commands.
I do not care about the size of the dump, so I'm OK with any options
to give to the .dump command. The .pdb is actually stored on the
Symbol Server located at C:\SymbolServer\. Again, If I have the .exe,
it is able to find the symbols from the Symbol Server.

Thank you,
Sean
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Loading Dump File [C:\dumps\jit_0B18_2007-03-26_17-04-05-641_0AE8.dmp]
User Mini Dump File with Full Memory: Only application data is
available

Windows XP Version 2600 (Service Pack 2) MP (2 procs) Free x86
compatible
Product: WinNt, suite: SingleUserTS
Debug session time: Mon Mar 26 17:04:05.000 2007 (GMT-4)
System Uptime: 0 days 3:26:46.847
Process Uptime: 0 days 0:00:19.000
Symbol search path is: SRV*C:\websymbols*C:\WINDOWS\Symbols*http://
msdl.microsoft.com/download/symbols;C:\SymbolServer
Executable search path is:
................
Loading unloaded module list
.....
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(ae8.ea4): Access violation - code c0000005 (first/second chance not
available)
eax=00000003 ebx=00000073 ecx=7ffffffe edx=0012f582 esi=0012f2f4
edi=004043b5
eip=77c42a16 esp=0012f2ac ebp=0012f518 iopl=0 nv up ei pl nz
na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000
efl=00000202
msvcrt!_output+0x655:
77c42a16 803800 cmp byte ptr [eax],0 ds:
0023:00000003=??
0:000> !sym noisy
noisy mode - symbol prompts on
0:000> .reload /f dbgexe.exe
SYMSRV: C:\websymbols\dbgexe.exe\46082F5D6000\dbgexe.exe not found
SYMSRV: C:\WINDOWS\Symbols\dbgexe.exe\46082F5D6000\dbgexe.exe not
found
SYMSRV: http://msdl.microsoft.com/download/symbols/dbgexe.exe/46082F5D6000/dbgexe.exe
not found
SYMSRV: C:\SymbolServer\dbgexe.exe\46082F5D6000\dbgexe.exe not found
DBGHELP: C:\Documents and Settings\guestuser\dbgexe.exe - file not
found
DBGHELP: dbgexe.exe not found in C:\SymbolServer
DBGENG: C:\Documents and Settings\guestuser\Desktop\DbgExe\Release
\dbgexe.exe - Couldn't map image from disk.
DBGHELP: No debug info for dbgexe.exe. Searching for dbg file
SYMSRV: C:\websymbols\dbgexe.dbg\46082F5D6000\dbgexe.dbg not found
SYMSRV: C:\WINDOWS\Symbols\dbgexe.dbg\46082F5D6000\dbgexe.dbg not
found
SYMSRV: http://msdl.microsoft.com/download/symbols/dbgexe.dbg/46082F5D6000/dbgexe.dbg
not found
SYMSRV: C:\SymbolServer\dbgexe.dbg\46082F5D6000\dbgexe.dbg not found
DBGHELP: .\dbgexe.dbg - file not found
DBGHELP: .\symbols\exe\dbgexe.dbg - path not found
DBGHELP: .\exe\dbgexe.dbg - path not found
DBGHELP: dbgexe.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for dbgexe.pdb - no header
information available
DBGHELP: dbgexe.pdb - file not found
*** WARNING: Unable to verify checksum for dbgexe.exe
*** ERROR: Module load completed but symbols could not be loaded for
dbgexe.exe
DBGHELP: dbgexe - no symbols loaded
0:000> !lmi dbgexe.exe
Loaded Module Info: [dbgexe.exe]
Module: dbgexe
Base Address: 00400000
Image Name: dbgexe.exe
Machine Type: 332 (I386)
Time Stamp: 46082f5d Mon Mar 26 16:38:53 2007
Size: 6000
CheckSum: 0
Characteristics: 10f
Debug Data Dirs: Type Size VA Pointer
CODEVIEW 54, 0, 6000 [Debug data not mapped] -
Can't validate symbols, if present.
Image Type: MEMORY - Image read successfully from symbol search
path.
dbgexe.exe
Symbol Type: NONE - PDB not found from symbol server.
Load Report: no symbols loaded
0:000> lm v m dbgexe
start end module name
00400000 00406000 dbgexe C (no symbols)
Loaded symbol image file: dbgexe.exe
Image path: C:\Documents and Settings\guestuser\Desktop\DbgExe
\Release\dbgexe.exe
Image name: dbgexe.exe
Timestamp: Mon Mar 26 16:38:53 2007 (46082F5D)
CheckSum: 00000000
ImageSize: 00006000
File version: 1.0.0.1
Product version: 1.0.0.1
File flags: 0 (Mask 3F)
File OS: 4 Unknown Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ??
ProductName: dbgexe Application
InternalName: dbgexe
OriginalFilename: dbgexe.EXE
ProductVersion: 1, 0, 0, 1
FileVersion: 1, 0, 0, 1
FileDescription: dbgexe MFC Application
LegalCopyright: Copyright (C) 1999
LegalTrademarks: Copyright (C) 1999

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On Mar 26, 4:29 am, "Oleg Starodumov" <com-dot-debuginfo-at-oleg>
Post by Oleg Starodumov
/ma is definitely better than /f and should be used if possible
(it puts more information into the dump, and is better supported by existing
debuggers).
Btw, if you still see the same effect with /ma, please include the complete
!sym noisy
.reload /f yourapp.exe
!lmi yourapp.exe
lmvm yourapp
--
Oleg
[VC++ MVPhttp://www.debuginfo.com/]
I'm generating the dump using the .dump command with the /f option
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug]
"Debugger"="C:\\windows\\system32\\ntsd.exe -p %ld -e %ld -g -c
\".dump /f /a /u c:\\dumps\\jit.dmp;q\""
This is based on the article from Oleg Starodumov's debuginfo.com
website. Are you suggesting that the dump generated using the /f
option is not good enough for windbg to be able to use the pdb file
directly? Would /ma option resolve the issue I'm having. I do not want
to upload the binaries to the symbol server unless absolutely
necessary for windbg to find the symbols and there is no other way.
Thank you,
Sean
On Mar 22, 7:36 pm, "Skywing [MVP]"
Post by Skywing [MVP]
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.
This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.
Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.
Thanks in advance,
Sean
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ??
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
s***@gmail.com
2007-03-29 04:45:56 UTC
Permalink
Oleg,
I've been using VC6 for my testing and after converting the project to
VC7, it seems to fix the problem. So the conclusion is that the pdb
files generated by VC6 are not good enough for windbg for finding
symbols from the symbol server.

Thanks for all your help.
Sean

On Mar 27, 5:43 am, "Oleg Starodumov" <com-dot-debuginfo-at-oleg>
Post by Oleg Starodumov
Yes, it looks like the debugger refuses to search for symbols
if it's not given the matching executable file. I don't know of a way
to pass to the debugger more information about the modules
than with /ma command (other than may be to invoke
ntsd again to open the dump and use '.dumpcab -a' to create
a .cab with executable modules. But storing executables on
the symbol server looks like an easier option...)
Oleg
--
Oleg,
Even /ma doesn't seem to help. Here's the output of various commands.
I do not care about the size of the dump, so I'm OK with any options
to give to the .dump command. The .pdb is actually stored on the
Symbol Server located at C:\SymbolServer\. Again, If I have the .exe,
it is able to find the symbols from the Symbol Server.
Thank you,
Sean
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Loading Dump File [C:\dumps\jit_0B18_2007-03-26_17-04-05-641_0AE8.dmp]
User Mini Dump File with Full Memory: Only application data is
available
Windows XP Version 2600 (Service Pack 2) MP (2 procs) Free x86
compatible
Product: WinNt, suite: SingleUserTS
Debug session time: Mon Mar 26 17:04:05.000 2007 (GMT-4)
System Uptime: 0 days 3:26:46.847
Process Uptime: 0 days 0:00:19.000
Symbol search path is: SRV*C:\websymbols*C:\WINDOWS\Symbols*http://
msdl.microsoft.com/download/symbols;C:\SymbolServer
................
Loading unloaded module list
.....
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(ae8.ea4): Access violation - code c0000005 (first/second chance not
available)
eax=00000003 ebx=00000073 ecx=7ffffffe edx=0012f582 esi=0012f2f4
edi=004043b5
eip=77c42a16 esp=0012f2ac ebp=0012f518 iopl=0 nv up ei pl nz
na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000
efl=00000202
0023:00000003=??
0:000> !sym noisy
noisy mode - symbol prompts on
0:000> .reload /f dbgexe.exe
SYMSRV: C:\websymbols\dbgexe.exe\46082F5D6000\dbgexe.exe not found
SYMSRV: C:\WINDOWS\Symbols\dbgexe.exe\46082F5D6000\dbgexe.exe not
found
SYMSRV: http://msdl.microsoft.com/download/symbols/dbgexe.exe/46082F5D6000/db...
not found
SYMSRV: C:\SymbolServer\dbgexe.exe\46082F5D6000\dbgexe.exe not found
DBGHELP: C:\Documents and Settings\guestuser\dbgexe.exe - file not
found
DBGHELP: dbgexe.exe not found in C:\SymbolServer
DBGENG: C:\Documents and Settings\guestuser\Desktop\DbgExe\Release
\dbgexe.exe - Couldn't map image from disk.
DBGHELP: No debug info for dbgexe.exe. Searching for dbg file
SYMSRV: C:\websymbols\dbgexe.dbg\46082F5D6000\dbgexe.dbg not found
SYMSRV: C:\WINDOWS\Symbols\dbgexe.dbg\46082F5D6000\dbgexe.dbg not
found
SYMSRV: http://msdl.microsoft.com/download/symbols/dbgexe.dbg/46082F5D6000/db...
not found
SYMSRV: C:\SymbolServer\dbgexe.dbg\46082F5D6000\dbgexe.dbg not found
DBGHELP: .\dbgexe.dbg - file not found
DBGHELP: .\symbols\exe\dbgexe.dbg - path not found
DBGHELP: .\exe\dbgexe.dbg - path not found
DBGHELP: dbgexe.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for dbgexe.pdb - no header
information available
DBGHELP: dbgexe.pdb - file not found
*** WARNING: Unable to verify checksum for dbgexe.exe
*** ERROR: Module load completed but symbols could not be loaded for
dbgexe.exe
DBGHELP: dbgexe - no symbols loaded
0:000> !lmi dbgexe.exe
Loaded Module Info: [dbgexe.exe]
Module: dbgexe
Base Address: 00400000
Image Name: dbgexe.exe
Machine Type: 332 (I386)
Time Stamp: 46082f5d Mon Mar 26 16:38:53 2007
Size: 6000
CheckSum: 0
Characteristics: 10f
Debug Data Dirs: Type Size VA Pointer
CODEVIEW 54, 0, 6000 [Debug data not mapped] -
Can't validate symbols, if present.
Image Type: MEMORY - Image read successfully from symbol search
path.
dbgexe.exe
Symbol Type: NONE - PDB not found from symbol server.
Load Report: no symbols loaded
0:000> lm v m dbgexe
start end module name
00400000 00406000 dbgexe C (no symbols)
Loaded symbol image file: dbgexe.exe
Image path: C:\Documents and Settings\guestuser\Desktop\DbgExe
\Release\dbgexe.exe
Image name: dbgexe.exe
Timestamp: Mon Mar 26 16:38:53 2007 (46082F5D)
CheckSum: 00000000
ImageSize: 00006000
File version: 1.0.0.1
Product version: 1.0.0.1
File flags: 0 (Mask 3F)
File OS: 4 Unknown Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ??
ProductName: dbgexe Application
InternalName: dbgexe
OriginalFilename: dbgexe.EXE
ProductVersion: 1, 0, 0, 1
FileVersion: 1, 0, 0, 1
FileDescription: dbgexe MFC Application
LegalCopyright: Copyright (C) 1999
LegalTrademarks: Copyright (C) 1999
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On Mar 26, 4:29 am, "Oleg Starodumov" <com-dot-debuginfo-at-oleg>
Post by Oleg Starodumov
/ma is definitely better than /f and should be used if possible
(it puts more information into the dump, and is better supported by existing
debuggers).
Btw, if you still see the same effect with /ma, please include the complete
!sym noisy
.reload /f yourapp.exe
!lmi yourapp.exe
lmvm yourapp
--
Oleg
[VC++ MVPhttp://www.debuginfo.com/]
I'm generating the dump using the .dump command with the /f option
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug]
"Debugger"="C:\\windows\\system32\\ntsd.exe -p %ld -e %ld -g -c
\".dump /f /a /u c:\\dumps\\jit.dmp;q\""
This is based on the article from Oleg Starodumov's debuginfo.com
website. Are you suggesting that the dump generated using the /f
option is not good enough for windbg to be able to use the pdb file
directly? Would /ma option resolve the issue I'm having. I do not want
to upload the binaries to the symbol server unless absolutely
necessary for windbg to find the symbols and there is no other way.
Thank you,
Sean
On Mar 22, 7:36 pm, "Skywing [MVP]"
Post by Skywing [MVP]
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.
This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.
Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.
Thanks in advance,
Sean
DBGHELP: myapp.exe missing debug info. Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded
0:017> lm v m myapp
start end module name
00400000 00474000 myapp C (no symbols)
Loaded symbol image file: myapp.exe
Image path: C:\bin\myapp.exe
Image name: myapp.exe
Timestamp: Wed Feb 28 10:25:43 2007 (45E59EF7)
CheckSum: 00000000
ImageSize: 00074000
File version: 1.22.10
Product version: 1.22.10
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: ??
ProductName: P
InternalName: server
OriginalFilename: server.exe
ProductVersion: 1.22.10
FileVersion: 1-22.10
FileDescription: Multi-Client Server
s***@gmail.com
2007-03-23 15:52:07 UTC
Permalink
I'm generating the dump using the .dump command with the /f option
like this:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug]
"Debugger"="C:\\windows\\system32\\ntsd.exe -p %ld -e %ld -g -c
\".dump /f /a /u c:\\dumps\\jit.dmp;q\""

This is based on the article from Oleg Starodumov's debuginfo.com
website. Are you suggesting that the dump generated using the /f
option is not good enough for windbg to be able to use the pdb file
directly? Would /ma option resolve the issue I'm having. I do not want
to upload the binaries to the symbol server unless absolutely
necessary for windbg to find the symbols and there is no other way.

Thank you,
Sean

On Mar 22, 7:36 pm, "Skywing [MVP]"
Post by Skywing [MVP]
This is the expected behavior for most minidumps, as the convention is to
only include minimum header information in most dump files, use this to
retrieve the binary from the symbol server, and then use the debug
information pointers in the binary to retrieve the symbol file from the
symbol server.
This is done to reduce the size of dumps as the code for binaries doesn't
need to be included in the dump when it could just as easily be downloaded
from the symbol server.
Bottom line: You should be indexing both your binaries and symbols.
--
Ken Johnson (Skywing)
Hi,
I'm having a problem with windbg finding symbols posted on the symbols
server. It is able to find symbols only when .exe is also posted to
the symbol server along with the .pdb. If just the .pdb is posted, it
is unable to find it. Can someone tell me why it is required to post
the exe to the symbol server along with the .pdb? Do you think I'm not
building the .pdb file properly. It is as-if it is relying on the exe
to find some information about the symbols.
Thanks in advance,
Sean
DBGHELP: myapp.exe missing debug info.  Searching for pdb anyway
DBGHELP: Can't use symbol server for myapp.pdb - no header information
available
DBGHELP: myapp.pdb - file not found
*** WARNING: Unable to verify checksum for myapp.exe
*** ERROR: Module load completed but symbols could not be loaded for
myapp.exe
DBGHELP: myapp - no symbols loaded
0:017> lm v m myapp
start    end        module name
00400000 00474000   myapp C (no symbols)
    Loaded symbol image file: myapp.exe
    Image path: C:\bin\myapp.exe
    Image name: myapp.exe
    Timestamp:        Wed Feb 28 10:25:43 2007 (45E59EF7)
    CheckSum:         00000000
    ImageSize:        00074000
    File version:     1.22.10
    Product version:  1.22.10
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        1.0 App
    File date:        00000000.00000000
    Translations:     0409.04b0
    CompanyName:      ܲ粑
    ProductName:      P
    InternalName:     server
    OriginalFilename: server.exe
    ProductVersion:   1.22.10
    FileVersion:      1-22.10
    FileDescription:  Multi-Client Server
Continue reading on narkive:
Loading...