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

Capture data for Mono server side symbolication #579

Closed
bruno-garcia opened this issue Nov 8, 2020 · 6 comments
Closed

Capture data for Mono server side symbolication #579

bruno-garcia opened this issue Nov 8, 2020 · 6 comments
Labels
Feature New feature or request

Comments

@bruno-garcia
Copy link
Member

#578 added parsing of Mono stacktraces. Part of the data it reads can be used to symbolicate frames with pdbs. But until Sentry adds support to it, there's no where to add it to the event.

https://github.com/getsentry/sentry-dotnet/pull/578/files#diff-591366d18813202fbdb64620c836b9f60442259c02a5e44d20e71895eef0c513R56

Platform = "mono", // needs to be agreed with the backend
ModuleVersionId = f.Mvid,
AotId = f.Aotid,
MethodIndex = f.MethodIndex.ToString("x4"),
IsILOffset = f.IsILOffset,

https://github.com/getsentry/sentry-dotnet/pull/578/files#diff-001afbb90f9f04a40a0eb9edcce5ac4a00b22e5d94a4622244d7901bee4cafbbR147

Protocol needs:

/// Module Version Id.
/// </summary>
/// <remarks>Used by the Mono AOT compiler</remarks>
[DataMember(Name = "mvid", EmitDefaultValue = false)]
public string? ModuleVersionId { get; set; }

/// <summary>
/// AOT Id.
/// </summary>
/// <remarks>Used by the Mono AOT compiler</remarks>
[DataMember(Name = "aotid", EmitDefaultValue = false)]
public string? AotId { get; set; }

/// <summary>
/// Method Index.
/// </summary>
/// <remarks>Used by the Mono AOT compiler</remarks>
[DataMember(Name = "method_index", EmitDefaultValue = false)]
public string? MethodIndex { get; set; }

/// <summary>
/// Is IL offset.
/// </summary>
/// <remarks>Used by the Mono AOT compiler</remarks>
[DataMember(Name = "is_il_offset", EmitDefaultValue = false)]
public bool? IsILOffset { get; set; }
@bruno-garcia bruno-garcia added the Feature New feature or request label Nov 28, 2020
@bruno-garcia
Copy link
Member Author

@jan-auer this is what I was referring to in terms of protocol change.

@SimonCropp
Copy link
Contributor

related to #1740

@SimonCropp SimonCropp moved this from Needs Discussion to Backlog in Mobile & Cross Platform SDK Jun 30, 2022
@mattjohnsonpint
Copy link
Contributor

@bruno-garcia - Was this for a different use case than we implemented recently (with #2050)?

The whole StackFrameData class appears to be unused, BTW.

@mattjohnsonpint
Copy link
Contributor

However, it is the only place we have an AotId - so I wonder if that's what we need to help resolve #2180...

@mattjohnsonpint
Copy link
Contributor

mattjohnsonpint commented Feb 17, 2023

Ok, after diving in further, I'm pretty sure that we can delete StackFrameData as dead code. It was used as part of MonoSentryStackTraceFactory, which was deleted in #2050. Basically, it's just for parsing info from the exception.StackTrace string that mono added when running with -debug (not debug configuration, but the mono debugging flag). We don't need to do that any more, as we have the ppdb support. which gets most of the same data, directly from the symbol files.

It doesn't help with #2180, as there is no pre-made exception.StackTrace string to parse there.

@mattjohnsonpint
Copy link
Contributor

Closing this issue, as it was handled by #2050 and corresponding Symbolic changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature or request
Projects
Archived in project
Development

No branches or pull requests

4 participants