Make dotnet-gcdump work with native AOT#5506
Merged
Conversation
Pretty much just adjusts what we had for Project N: * `IsProjectN` is not true for native AOT because we use the same provider GUID as JIT-based CoreCLR and not Project N (which is by design) * It is still possible to handle both Project N and native AOT the same way where it matters because both Project N and native AOT emit the same flags (`TypeFlags.ModuleBaseAddress` and `ModuleFlags.Native`) * Looks like Project N GCDump always relied on Windows kernel module load data only. I'm adding a path that can also use our own module load events (Project N also generates those)
Member
Author
|
GCDumps taken with this can be opened with PerfView and PerfView will prompt for the PDBs. If available, (mangled) type names will show up in PerfView UI. |
MichalStrehovsky
added a commit
to MichalStrehovsky/perfview
that referenced
this pull request
Jun 17, 2025
With this, PerfView will be able to create native AOT gcdumps. It activates the same codepaths we had for Project N, so it will also properly decode type names. The changes to DotNetHeapDumpGraphReader match dotnet/diagnostics#5506.
noahfalk
reviewed
Jun 18, 2025
brianrob
pushed a commit
to microsoft/perfview
that referenced
this pull request
Jun 20, 2025
With this, PerfView will be able to create native AOT gcdumps. It activates the same codepaths we had for Project N, so it will also properly decode type names. The changes to DotNetHeapDumpGraphReader match dotnet/diagnostics#5506.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Pretty much just adjusts what we had for Project N:
IsProjectNis not true for native AOT because we use the same provider GUID as JIT-based CoreCLR and not Project N (which is by design)TypeFlags.ModuleBaseAddressandModuleFlags.Native)Cc @dotnet/ilc-contrib