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

[cdac] Implement ISOSDacInterface::GetNestedExceptionData #103668

Merged
merged 3 commits into from
Jun 27, 2024

Conversation

elinor-fung
Copy link
Member

@elinor-fung elinor-fung commented Jun 18, 2024

  • Implement GetExceptionInfo in Exception contract
  • Implement ISOSDacInterface::GetNestedExceptionData in cDAC
  • Add ObjectHandle to cDAC types

Contributes to #99302

Copy link
Contributor

Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.

@@ -58,6 +58,7 @@ static IContract IContract.Create(Target target, int version)
public virtual ThreadStoreData GetThreadStoreData() => throw new NotImplementedException();
public virtual ThreadStoreCounts GetThreadCounts() => throw new NotImplementedException();
public virtual ThreadData GetThreadData(TargetPointer thread) => throw new NotImplementedException();
public virtual TargetPointer GetExceptionInfo(TargetPointer exception, out TargetPointer nextNestedException) => throw new NotImplementedException();
Copy link
Member Author

@elinor-fung elinor-fung Jun 18, 2024

Choose a reason for hiding this comment

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

This is on Thread right now, since that's kind of where the exception pointer came from. We may want to put it on an Exception contract - for handling the SOS-DAC APIs right now, it seems like it would just be this and getting info for the managed exception object (GetObjectExceptionData). But presumably we could add something to handle generating the stack trace such that SOS wouldn't directly inspect/assume things about StackTraceInfo and StackTraceElement:
https://github.com/dotnet/diagnostics/blob/d592e0da173e520ef42d4f9cdd9d7b138a9896fd/src/SOS/Strike/strike.cpp#L2454
https://github.com/dotnet/diagnostics/blob/d592e0da173e520ef42d4f9cdd9d7b138a9896fd/src/SOS/Strike/strike.cpp#L2766-L2796
https://github.com/dotnet/diagnostics/blob/d592e0da173e520ef42d4f9cdd9d7b138a9896fd/src/SOS/Strike/strike.cpp#L2610-L2617

Copy link
Member

Choose a reason for hiding this comment

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

BTW: The StackTraceElement details are changing in #103076

@elinor-fung elinor-fung merged commit ca5d25c into dotnet:main Jun 27, 2024
141 of 149 checks passed
@elinor-fung elinor-fung deleted the cdac-nested-exception branch June 27, 2024 02:35
@github-actions github-actions bot locked and limited conversation to collaborators Jul 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants