Skip to content

Commit ead4d81

Browse files
authored
Fix document checksums in emitted pdbs (#110097)
1 parent 201b1b1 commit ead4d81

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ private DocumentHandle AddDocument(string url, Guid language, Guid hashAlgorithm
603603
_pdbBuilder.AddDocument(
604604
name: _pdbBuilder.GetOrAddDocumentName(url),
605605
hashAlgorithm: hashAlgorithm == default ? default : _pdbBuilder.GetOrAddGuid(hashAlgorithm),
606-
hash: hash == null ? default : _metadataBuilder.GetOrAddBlob(hash),
606+
hash: hash == null ? default : _pdbBuilder.GetOrAddBlob(hash),
607607
language: language == default ? default : _pdbBuilder.GetOrAddGuid(language));
608608

609609
private void FillMemberReferences(ILGeneratorImpl il)

src/libraries/System.Reflection.Emit/tests/PortablePdb/PortablePdbStandalonePdbTest.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ private static void ValidatePDB(MethodBuilder method, MethodBuilder entryPoint,
6161
Document doc = reader.GetDocument(docEnumerator.Current);
6262
Assert.Equal("MySourceFile.cs", reader.GetString(doc.Name));
6363
Assert.Equal(SymLanguageType.CSharp, reader.GetGuid(doc.Language));
64-
Assert.Equal(default, reader.GetGuid(doc.HashAlgorithm));
64+
Assert.Equal(new Guid("8829d00f-11b8-4213-878b-770e8597ac16"), reader.GetGuid(doc.HashAlgorithm));
65+
Assert.Equal("06CBAB3A501306FDD9176A00A83E5BB92EA4D7863CFD666355743527CF99EDC6", Convert.ToHexString(reader.GetBlobBytes(doc.Hash)));
6566
Assert.False(docEnumerator.MoveNext());
6667

6768
MethodDebugInformation mdi1 = reader.GetMethodDebugInformation(MetadataTokens.MethodDebugInformationHandle(method.MetadataToken));
@@ -147,6 +148,7 @@ private static MetadataBuilder GenerateAssemblyAndMetadata(out MethodBuilder met
147148
ModuleBuilder mb = ab.DefineDynamicModule("MyModule2");
148149
TypeBuilder tb = mb.DefineType("MyType", TypeAttributes.Public | TypeAttributes.Class);
149150
ISymbolDocumentWriter srcdoc = mb.DefineDocument("MySourceFile.cs", SymLanguageType.CSharp);
151+
srcdoc.SetCheckSum(new Guid("8829d00f-11b8-4213-878b-770e8597ac16"), Convert.FromHexString("06CBAB3A501306FDD9176A00A83E5BB92EA4D7863CFD666355743527CF99EDC6"));
150152
method = tb.DefineMethod("SumMethod", MethodAttributes.Public | MethodAttributes.Static, typeof(int), [typeof(int), typeof(int)]);
151153
ILGenerator il1 = method.GetILGenerator();
152154
LocalBuilder local = il1.DeclareLocal(typeof(int));

0 commit comments

Comments
 (0)