dotnet/diagnostics

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:

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!

Hi @riverar please let us know if the issue is now resolved

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