Я понял, как файл .NET.dll сопоставляется с .pdb с помощью GUID (blog). Когда я отлаживаю сборку и запрашивает исходный код, если я перехожу к файлу, он может сказать мне, что исходный код отличается от исходного. Как он это знает? Я ожидал, что файл .pdb будет содержать контрольную сумму для каждого файла, но он не отображается. Лучший инструмент, который я нашел, чтобы сбрасывать информацию об отладке, - dia2dump. Файлы С++.pdb имели записи MD5, но файлы С#.pdb этого не сделали.
Сброс С++
dia2dump -f dia2dump.pdb > dia2dump.pdb.files.txt
Сброс С#
dia2dump -f Autofac.pdb > Autofac.pdb.files.txt
dia2dump -all Autofac.pdb > Autofac.pdb.all.txt
Есть ли что-то, что я пропустил в "все" свалке?
Он должен использовать контрольную сумму. Если я изменяю один символ в Module.cs, я получаю:
Где найти контрольную сумму для исходного файла, указанного в .pdb?