I'm setting up our private symbol server. Everything works great. Observe the following Resharper log when I debug into one of our Nuget packages using symbol server:
Searching for 'ClassLibrary1.Class1' type sources in C:\SNIPPED\SymbolCache\ClassLibrary1.pdb\91180103b9def6ca85f41230aaf9a4611\ClassLibrary1.pdb
Downloader: https ://LOCAL_SYMBOL_SVR/app/sources/builds/id-1641/sources/files/ClassLibrary1/Class1.cs -> ok, 268 bytes
See the hash, 91180103b9def6ca85f41230aaf9a4611? Notice that it is 33 digits.
I figured it might be stored in a PE header, but dumpbin.exe /all DLL doesn't contain the hash in its output.
Where does that hash come from? Is it stored within the DLL somewhere? If so, how and where is it stored?
if PE build with debug information - must exist
IMAGE_DEBUG_DIRECTORYin it withIMAGE_DEBUG_TYPE_CODEVIEW. so first debugger search for array ofIMAGE_DEBUG_DIRECTORYelements (it can be multiple). this array located atIMAGE_DIRECTORY_ENTRY_DEBUGdata directory. forIMAGE_DEBUG_TYPE_CODEVIEWdebug info now locate in format RSDSthe what you called "hash" this is really not hash formated from guidSig and age as
%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X%xthe
dwSigmust equal to'SDSR'andszPdbstored as utf8 string code example: