Skip to content

Crossgen2 PDB generation regressed after a refactoring in .NET 8, rendering the output PDB invalid. #96917

@trylek

Description

@trylek

Architecture: all
OS: Windows

We have recently found out that Crossgen2-produced PDB files contain an invalid GUID (not matching the one in the produced PE executable) and no actual symbol information. JanK tracked this down to the following commit,

https://github.com/dotnet/runtime/pull/84643/files#diff-9e985fc04e2df61f33c3d19bb5d1a0de0188a8343339bfc2f8c977c56d1f60f2L148

which changed management of the refcounted COM object NGenPDBWriter in such a way that it never got fully released and so it didn't flush its various in-memory changes to the PDB file. I have already fixed the issue in the .NET 9 live runtime tree with the following PR:

#96518

The purpose of this tracking issue is to assist backport of the fix to .NET 8 servicing,

#96566

as it constitutes a regression affecting various profiler scenarios.

Thanks

Tomas

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions