Skip to content

Commit f9d0a7b

Browse files
[release/8.0-staging] Fix Crossgen2 PDB generation (again) (#96566)
* Fix Crossgen2 PDB generation (again) * Simplify the change per JanK's PR feedback --------- Co-authored-by: Tomáš Rylek <trylek@microsoft.com>
1 parent a5fc8ff commit f9d0a7b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/coreclr/tools/aot/ILCompiler.Diagnostics/PdbWriter.cs

+8-2
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,14 @@ public void WritePDBData(string dllPath, IEnumerable<MethodInfo> methods)
143143
}
144144
finally
145145
{
146-
if ((_ngenWriter != null) && (_pdbMod != UIntPtr.Zero))
146+
if (_ngenWriter != null)
147147
{
148-
_ngenWriter.CloseMod(_pdbMod);
148+
if (_pdbMod != UIntPtr.Zero)
149+
{
150+
_ngenWriter.CloseMod(_pdbMod);
151+
}
152+
ComObject ngenWriterComObject = (ComObject)(object)_ngenWriter;
153+
ngenWriterComObject.FinalRelease();
149154
}
150155
}
151156

@@ -211,6 +216,7 @@ private void WritePDBDataHelper(string dllPath, IEnumerable<MethodInfo> methods)
211216
var comWrapper = new StrategyBasedComWrappers();
212217
CreateNGenPdbWriter(dllPath, _pdbFilePath, out var pdbWriterInst);
213218
_ngenWriter = (ISymNGenWriter2)comWrapper.GetOrCreateObjectForComInstance(pdbWriterInst, CreateObjectFlags.UniqueInstance);
219+
Marshal.Release(pdbWriterInst);
214220

215221
{
216222
// PDB file is now created. Get its path and update _pdbFilePath so the PDB file

0 commit comments

Comments
 (0)