mscordacwks files/symbols missing from symsrv
riverar opened this issue · 4 comments
Description
Attempting to debug user mode dumps of .NET Framework applications results in a lot of headaches, due to missing requisite SOS files on symsrv. WinDbg for example will output:
Failed to load data access DLL, 0x80004005
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
2) the file mscordacwks.dll that matches your version of clr.dll is
in the version directory or on the symbol path
3) or, if you are debugging a dump file, verify that the file
mscordacwks_<arch>_<arch>_<version>.dll is on your symbol path.
4) you are debugging on supported cross platform architecture as
the dump file. For example, an ARM dump file must be debugged
on an X86 or an ARM machine; an AMD64 dump file must be
debugged on an AMD64 machine.
You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll. .cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.
If you are debugging a minidump, you need to make sure that your executable
path is pointing to clr.dll as well.
In my case, the following are missing:
- mscordacwks.dll 4.8.9037.00 (62B6387F7bb000)
- matching SOS.dll
Configuration
0:000> vertarget
Windows 10 Version 19042 MP (16 procs) Free x64
Product: WinNt, suite: SingleUserTS
Edition build lab: 19041.1.amd64fre.vb_release.191206-1406
Debug session time: Sat Apr 20 12:45:47.000 2024 (UTC - 7:00)
System Uptime: 0 days 6:15:21.616
Process Uptime: 0 days 2:08:13.000
Kernel time: 0 days 0:00:09.000
User time: 0 days 0:02:29.000
(Not sure how useful vertarget is nowadays)
0:000> lmDvmclr
Browse full module list
start end module name
00000000`72fd0000 00000000`7378b000 clr (pdb symbols) D:\Symbols\sym\clr.pdb\339007F39B624D029D447BA23D3520582\clr.pdb
Loaded symbol image file: clr.dll
Image path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Image name: clr.dll
Browse all global symbols functions data
Timestamp: Fri Jun 24 15:19:43 2022 (62B6387F)
CheckSum: 007BEF95
ImageSize: 007BB000
File version: 4.8.9037.0
Product version: 4.0.30319.0
File flags: 8 (Mask 3F) Private
File OS: 4 Unknown Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0409.04b0
Information from resource tables:
CompanyName: Microsoft Corporation
ProductName: Microsoft® .NET Framework
InternalName: clr.dll
OriginalFilename: clr.dll
ProductVersion: 4.8.9037.0
FileVersion: 4.8.9037.0 built by: NET481REL1
PrivateBuild: DDBLD299C
FileDescription: Microsoft .NET Runtime Common Language Runtime - WorkStation
LegalCopyright: © Microsoft Corporation. All rights reserved.
Comments: Flavor=Retail
Regression?
Yes. Microsoft used to be more vigilant about providing symbols for all shipped files. Much less so now.
Other information
Likely reproducible with any Windows 10/11 install that has been serviced recently. It appears any time servicing pushes stuff out, symbols are forgotten. (Continue to have this issue with this team + other files/symbols.)
We reindexed this .NET Framework version so the DAC should be available on the symbol server in the next day or so.
@mikem8361 Awesome, thanks!
Looks good.
mscordacwks.dll 4.8.9037 64-bit
"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /v /if mscordacwks.dll /su SRV*C:\Temp*https:/
/msdl.microsoft.com/download/symbols
[SYMCHK] Searching for symbols to C:\Temp\mscordacwks.dll in path SRV*C:\Temp*https://msdl.microsoft.com/download/symbols
DBGHELP: Symbol Search Path: SRV*C:\Temp*https://msdl.microsoft.com/download/symbols
[SYMCHK] Using search path "SRV*C:\Temp*https://msdl.microsoft.com/download/symbols"
DBGHELP: No header for C:\Temp\mscordacwks.dll. Searching for image on disk
DBGHELP: C:\Temp\mscordacwks.dll - OK
SYMSRV: BYINDEX: 0x1
C:\Temp*https://msdl.microsoft.com/download/symbols
mscordacwks.pdb
EAA6F0292E064B269115A295D222CCB52
SYMSRV: UNC: C:\Temp\mscordacwks.pdb\EAA6F0292E064B269115A295D222CCB52\mscordacwks.pdb - path not found
SYMSRV: UNC: C:\Temp\mscordacwks.pdb\EAA6F0292E064B269115A295D222CCB52\mscordacwks.pd_ - path not found
SYMSRV: UNC: C:\Temp\mscordacwks.pdb\EAA6F0292E064B269115A295D222CCB52\file.ptr - path not found
SYMSRV: HTTPGET: /download/symbols/index2.txt
SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV: HTTPGET: /download/symbols/mscordacwks.pdb/EAA6F0292E064B269115A295D222CCB52/mscordacwks.pdb
SYMSRV: HttpQueryInfo: 801900c8 - HTTP_STATUS_OK
SYMSRV: mscordacwks.pdb from https://msdl.microsoft.com/download/symbols: 3140608 bytes - copied
SYMSRV: PATH: C:\Temp\mscordacwks.pdb\EAA6F0292E064B269115A295D222CCB52\mscordacwks.pdb
SYMSRV: RESULT: 0x00000000
DBGHELP: mscordacwks - public symbols
C:\Temp\mscordacwks.pdb\EAA6F0292E064B269115A295D222CCB52\mscordacwks.pdb
[SYMCHK] MODULE64 Info ----------------------
[SYMCHK] Struct size: 1680 bytes
[SYMCHK] Base: 0x180000000
[SYMCHK] Image size: 1556480 bytes
[SYMCHK] Date: 0x62b6370f
[SYMCHK] Checksum: 0x0017ca9e
[SYMCHK] NumSyms: 0
[SYMCHK] SymType: SymPDB
[SYMCHK] ModName: mscordacwks
[SYMCHK] ImageName: C:\Temp\mscordacwks.dll
[SYMCHK] LoadedImage: C:\Temp\mscordacwks.dll
[SYMCHK] PDB: "C:\Temp\mscordacwks.pdb\EAA6F0292E064B269115A295D222CCB52\mscordacwks.pdb"
[SYMCHK] CV: RSDS
[SYMCHK] CV DWORD: 0x53445352
[SYMCHK] CV Data: mscordacwks.pdb
[SYMCHK] PDB Sig: 0
[SYMCHK] PDB7 Sig: {EAA6F029-2E06-4B26-9115-A295D222CCB5}
[SYMCHK] Age: 2
[SYMCHK] PDB Matched: TRUE
[SYMCHK] DBG Matched: TRUE
[SYMCHK] Line nubmers: FALSE
[SYMCHK] Global syms: FALSE
[SYMCHK] Type Info: FALSE
[SYMCHK] ------------------------------------
SymbolCheckVersion 0x00000002
Result 0x00030001
DbgFilename
DbgTimeDateStamp 0x62b6370f
DbgSizeOfImage 0x0017c000
DbgChecksum 0x0017ca9e
PdbFilename C:\Temp\mscordacwks.pdb\EAA6F0292E064B269115A295D222CCB52\mscordacwks.pdb
PdbSignature {EAA6F029-2E06-4B26-9115-A295D222CCB5}
PdbDbiAge 0x00000002
[SYMCHK] [ 0x00000000 - 0x00030001 ] Checked "C:\Temp\mscordacwks.dll"
SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1
mscordacwks.dll 4.8.9037 32-bit
C:\Temp>"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /v /if mscordacwks.dll /su SRV*C:\Temp*https://msdl.microsoft.com/download/symbols
[SYMCHK] Searching for symbols to C:\Temp\mscordacwks.dll in path SRV*C:\Temp*https://msdl.microsoft.com/download/symbols
DBGHELP: Symbol Search Path: SRV*C:\Temp*https://msdl.microsoft.com/download/symbols
[SYMCHK] Using search path "SRV*C:\Temp*https://msdl.microsoft.com/download/symbols"
DBGHELP: No header for C:\Temp\mscordacwks.dll. Searching for image on disk
DBGHELP: C:\Temp\mscordacwks.dll - OK
SYMSRV: BYINDEX: 0x1
C:\Temp*https://msdl.microsoft.com/download/symbols
mscordacwks.pdb
5B1E9510698D429F9C161304EFCB5ED62
SYMSRV: UNC: C:\Temp\mscordacwks.pdb\5B1E9510698D429F9C161304EFCB5ED62\mscordacwks.pdb - path not found
SYMSRV: UNC: C:\Temp\mscordacwks.pdb\5B1E9510698D429F9C161304EFCB5ED62\mscordacwks.pd_ - path not found
SYMSRV: UNC: C:\Temp\mscordacwks.pdb\5B1E9510698D429F9C161304EFCB5ED62\file.ptr - path not found
SYMSRV: HTTPGET: /download/symbols/index2.txt
SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV: HTTPGET: /download/symbols/mscordacwks.pdb/5B1E9510698D429F9C161304EFCB5ED62/mscordacwks.pdb
SYMSRV: HttpQueryInfo: 801900c8 - HTTP_STATUS_OK
SYMSRV: mscordacwks.pdb from https://msdl.microsoft.com/download/symbols: 1682432 bytes - copied
SYMSRV: PATH: C:\Temp\mscordacwks.pdb\5B1E9510698D429F9C161304EFCB5ED62\mscordacwks.pdb
SYMSRV: RESULT: 0x00000000
DBGHELP: mscordacwks - public symbols
C:\Temp\mscordacwks.pdb\5B1E9510698D429F9C161304EFCB5ED62\mscordacwks.pdb
[SYMCHK] MODULE64 Info ----------------------
[SYMCHK] Struct size: 1680 bytes
[SYMCHK] Base: 0x10000000
[SYMCHK] Image size: 1437696 bytes
[SYMCHK] Date: 0x62b63735
[SYMCHK] Checksum: 0x001652bf
[SYMCHK] NumSyms: 0
[SYMCHK] SymType: SymPDB
[SYMCHK] ModName: mscordacwks
[SYMCHK] ImageName: C:\Temp\mscordacwks.dll
[SYMCHK] LoadedImage: C:\Temp\mscordacwks.dll
[SYMCHK] PDB: "C:\Temp\mscordacwks.pdb\5B1E9510698D429F9C161304EFCB5ED62\mscordacwks.pdb"
[SYMCHK] CV: RSDS
[SYMCHK] CV DWORD: 0x53445352
[SYMCHK] CV Data: mscordacwks.pdb
[SYMCHK] PDB Sig: 0
[SYMCHK] PDB7 Sig: {5B1E9510-698D-429F-9C16-1304EFCB5ED6}
[SYMCHK] Age: 2
[SYMCHK] PDB Matched: TRUE
[SYMCHK] DBG Matched: TRUE
[SYMCHK] Line nubmers: FALSE
[SYMCHK] Global syms: FALSE
[SYMCHK] Type Info: FALSE
[SYMCHK] ------------------------------------
SymbolCheckVersion 0x00000002
Result 0x00030001
DbgFilename
DbgTimeDateStamp 0x62b63735
DbgSizeOfImage 0x0015f000
DbgChecksum 0x001652bf
PdbFilename C:\Temp\mscordacwks.pdb\5B1E9510698D429F9C161304EFCB5ED62\mscordacwks.pdb
PdbSignature {5B1E9510-698D-429F-9C16-1304EFCB5ED6}
PdbDbiAge 0x00000002
[SYMCHK] [ 0x00000000 - 0x00030001 ] Checked "C:\Temp\mscordacwks.dll"
SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1