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

Add information about state machine MoveNext methods #735

Merged

Conversation

MichalStrehovsky
Copy link
Member

This exposes the debug records necessary to identify state machine MoveNext methods. Only implementing this for the portable PDB reader. It didn't look straightforward to do for unmanaged PDBs but those are Windows only anyway.

@MichalStrehovsky MichalStrehovsky added the area-NativeAOT-coreclr .NET runtime optimized for ahead of time compilation label Feb 23, 2021
@MichalStrehovsky
Copy link
Member Author

Decided to also push out the commit that adds demangling. Not sure if I'll be able to do the deluxe version that actually shows these as locals since the C++ EE might not be involved after all. Still checking.

The current experience is:

image

@MichalStrehovsky
Copy link
Member Author

MichalStrehovsky commented Feb 23, 2021

The debug information for the state machine closure itself is left intact:

image

Copy link
Member

@jkotas jkotas left a comment

Choose a reason for hiding this comment

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

Nice!

This exposes the debug records necessary to identify state machine MoveNext methods. Only implementing this for the portable PDB reader. It didn't look straightforward to do for unmanaged PDBs but those are Windows only anyway.
Produces human-readable debug information for the 'this' parameter of state machines.
This unmangles and hides fields as necessary to produce better debug information
for the state machine. We create a new type to describe the 'this' parameter
instead of using the debug information of the state machine itself.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-NativeAOT-coreclr .NET runtime optimized for ahead of time compilation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants