-
Notifications
You must be signed in to change notification settings - Fork 752
Fix jitted code symbols in universal traces to show assembly names instead of memfd:doublemapper #2269
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
Conversation
…blemapper issue Co-authored-by: brianrob <6210322+brianrob@users.noreply.github.com>
Co-authored-by: brianrob <6210322+brianrob@users.noreply.github.com>
|
I've made some changes to help this PR along. I'm noticing that the Regex for parsing the jitted methods fails for a number of cases where it should succeed. From a sample trace, here are some examples of where it fails: |
|
@copilot, can you please try to fix the Regex? |
Co-authored-by: brianrob <6210322+brianrob@users.noreply.github.com>
Fixed the regex pattern in commit 32a4c06. The issue was that the regex expected a single non-whitespace word for the return type ( Changed the return type capture group from |
0d9c3b0 to
47bf566
Compare
47bf566 to
8b0b97c
Compare
|
Copilot Post-Mortem:
|
When analyzing .NET applications with universal traces, jitted code symbols currently show the unhelpful module name "memfd:doublemapper" instead of the actual managed assembly name. This makes stack traces difficult to read and analyze.
Problem
Stack traces display symbols like:
Solution
This PR parses the jitted symbol format and extracts the actual assembly name to display:
Implementation
ParseJittedSymbolNameregex that was failing to parse symbols with multi-word return types likeinstance void,instance bool, and complex types likevaluetype [Type]TypeAddUniversalDynamicSymbolmethod to detect whenloadedModule.ModuleFile.FilePathstarts with "memfd:doublemapper" and apply proper symbol formattingKey Features
Module!Methodsymbol formatTest Coverage
Added comprehensive tests in
UniversalSymbolParsingTest.cs:The fix transforms unreadable stack traces into clean, analyzable ones that clearly show which assemblies contain the executing code, and now correctly handles all the complex symbol formats found in real-world traces.
Fixes #2267.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.