Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/8.0-staging] Fix Crossgen2 PDB generation (again) #96566

Merged

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Jan 5, 2024

Backport of #96518 to release/8.0-staging

/cc @trylek

Customer Impact

Lack of meaningful symbol information for Crossgen2-compiled assemblies. This is only relevant for profiler scenarios, Watson and debugging in general use IL PDB information in combination with a special debug section in the Crossgen2 PE executable (unrelated to PDBs) that can be used to map RVAs to IL offsets. In particular, we believe the following apps / components to be affected by this deficiency:

• AzureProfiler
• CPR (M365 service-wide profiling)
• DiagTrack
• PerfView
• Fleet Diagnostics / Viewing of Traces in Azure DiagSpaces
• VS PerfTrack (capture of profiles of VS in production)

Testing

Local verification of the fix using cvdump, standard lab testing. I have also tested this with PerfView but it turns out that PerfView currently doesn't fully support lookup of .ni.pdb files for manually built Crossgen2 assemblies, I have put up a WIP PR with the PerfView fix to implement this support that is currently open for design discussion:

microsoft/perfview#1973

Risk

Low - PDB information is a relatively niche scenario mostly exercised in PerfView; it certainly shouldn't affect production behavior of .NET 8 apps.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approved. we will take for consideration in 8.0.x

@carlossanlop
Copy link
Member

@trylek Friendly reminder that Tuesday January 16th 4pm is the Code Complete deadline for the February Release. If all requirements are met, please merge your PR before that date and time to ensure this fix gets included in that Release.

@jeffschwMSFT jeffschwMSFT added the Servicing-consider Issue for next servicing release review label Jan 12, 2024
@jeffschwMSFT jeffschwMSFT added this to the 8.0.x milestone Jan 12, 2024
@jeffschwMSFT jeffschwMSFT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jan 13, 2024
@jeffschwMSFT jeffschwMSFT modified the milestones: 8.0.x, 8.0.2 Jan 13, 2024
@carlossanlop carlossanlop merged commit f9d0a7b into release/8.0-staging Jan 16, 2024
107 of 114 checks passed
@carlossanlop carlossanlop deleted the backport/pr-96518-to-release/8.0-staging branch January 16, 2024 18:33
@github-actions github-actions bot locked and limited conversation to collaborators Feb 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-crossgen2-coreclr Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants