feat: Handle "synthesized" class/member annotations#52
Merged
loewenheim merged 10 commits intomasterfrom Jul 14, 2025
Merged
Conversation
tobias-wilfert
approved these changes
Jun 27, 2025
Dav1dde
approved these changes
Jun 27, 2025
Swatinem
approved these changes
Jun 30, 2025
src/cache/raw.rs
Outdated
| /// Whether this class was synthesized by the compiler. | ||
| /// | ||
| /// `0` means `false`, all other values mean `true`. | ||
| pub(crate) is_synthesized: u32, |
Contributor
There was a problem hiding this comment.
maybe turn this into is_synthesized: u8, and add _reserved: [u8; 3] to the end.
Contributor
Author
There was a problem hiding this comment.
Yeah that's fair.
Swatinem
approved these changes
Jun 30, 2025
5bf88a5 to
6e7e9aa
Compare
Contributor
Author
|
This has been rewritten on top of #55. |
64e465c to
6e27ff4
Compare
loewenheim
added a commit
to getsentry/symbolicator
that referenced
this pull request
Jul 17, 2025
This updates the `proguard` dependency to 5.6.1 to get access to "synthesized" flags in the cache format (see getsentry/rust-proguard#52). Since the cache format has changed, this requires an _incompatible_ bump of the proguard cache version. It also adds a static version check for the cache version exposed by the `proguard` crate in analogy to symcaches and cficaches.
loewenheim
added a commit
to getsentry/symbolicator
that referenced
this pull request
Jul 17, 2025
This updates the `proguard` dependency to 5.6.1 to get access to "synthesized" flags in the cache format (see getsentry/rust-proguard#52). Since the cache format has changed, this requires an _incompatible_ bump of the proguard cache version. It also adds a static version check for the cache version exposed by the `proguard` crate in analogy to symcaches and cficaches.
loewenheim
added a commit
to getsentry/symbolicator
that referenced
this pull request
Jul 17, 2025
This updates the `proguard` dependency to 5.6.1 to get access to "synthesized" flags in the cache format (see getsentry/rust-proguard#52). Since the cache format has changed, this requires an _incompatible_ bump of the proguard cache version. It also adds a static version check for the cache version exposed by the `proguard` crate in analogy to symcaches and cficaches. ref: #1720. ref: SYMBOLI-22.
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This adds support for "synthesized" class and member annotations.
SynthesizedtoR8Headerto parse these annotations.is_synthesizedflags toClassMappingandMemberMappingand their corresponding cache types. In the cache the flags have typeu32becauseboolwould be unsound to transmute.is_synthesizedflag toStackFramethat is set if the frame's class or method are flagged as synthesized.callback.rs.With this change,
remap_frame(both themapperand thecacheversion) will return exactly the same frames as before, but some of them might be marked as synthesized. This means it's up to the caller to decide what to do with synthesized frames.Closes #48. Closes RUSTPRO-3.