Strip .il and .ni suffixes from TraceModuleFile.Name#2364
Merged
leculver merged 1 commit intomicrosoft:mainfrom Feb 24, 2026
Merged
Strip .il and .ni suffixes from TraceModuleFile.Name#2364leculver merged 1 commit intomicrosoft:mainfrom
leculver merged 1 commit intomicrosoft:mainfrom
Conversation
Collaborator
Author
|
TraceEvent tests pass (well, they match the baseline of main). |
Member
|
Thanks @leculver. I'm wondering if we might be able to just remove the ".il" suffix entirely, rather than stripping it off in various places. It doesn't actually represent a file on disk, so there isn't a risk of not finding the file. What if we removed this code and then we could even remove other code that strips it before presentation, such as this. |
Collaborator
Author
|
Will take a look, thanks! |
Fix dotnet/diagnostics#3102: EventPipe module names have unexpected .il suffix. TraceLog.ManagedModuleLoadOrUnload was creating synthetic .il.dll paths for ReadyToRun assemblies to maintain separate IL and native PDB entries. This internal implementation detail leaked into user-visible names, causing tools like dotnet-stack, PerfView, and WPA to display module names like 'System.Private.CoreLib.il' instead of 'System.Private.CoreLib'. Remove the synthetic .il path creation at the source instead of stripping it downstream. The IL module now uses the same path as the native module since there's no separate IL-only file on disk. Also strip .ni suffixes from TraceModuleFile.Name for NGEN images.
Collaborator
Author
|
Done, @brianrob can you take a look? |
brianrob
approved these changes
Feb 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix dotnet/diagnostics#3102: EventPipe module names have unexpected .il suffix.
TraceLog.ManagedModuleLoadOrUnload creates synthetic .il.dll paths for ReadyToRun assemblies to maintain separate IL and native PDB entries. This is an internal implementation detail that was leaking into the user-visible Name property, causing tools like dotnet-stack, PerfView, and WPA to display module names like 'System.Private.CoreLib.il' instead of 'System.Private.CoreLib'.
Strip the .il and .ni suffixes in TraceModuleFile.Name, matching the same logic already used in GetSourceLine() for source resolution.