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_DIRECTORY
in it withIMAGE_DEBUG_TYPE_CODEVIEW
. so first debugger search for array ofIMAGE_DEBUG_DIRECTORY
elements (it can be multiple). this array located atIMAGE_DIRECTORY_ENTRY_DEBUG
data directory. forIMAGE_DEBUG_TYPE_CODEVIEW
debug 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%x
the
dwSig
must equal to'SDSR'
andszPdb
stored as utf8 string code example: