Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
### Fixes

- The SDK now logs a `Warning` instead of an `Error` when being ratelimited ([#4927](https://github.com/getsentry/sentry-dotnet/pull/4927))
- Symbolication now works correctly with Android workloads 10.0.102 and later ([#4998](https://github.com/getsentry/sentry-dotnet/pull/4998))
- `libmonosgen` and `libxamarin` frames no longer show as in-app ([#4960](https://github.com/getsentry/sentry-dotnet/pull/4960))

## 6.2.0-alpha.0
Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"sdk": {
"version": "10.0.102",
"workloadVersion": "10.0.101.1",
"workloadVersion": "10.0.102",
"rollForward": "disable",
"allowPrerelease": false
}
Expand Down
23 changes: 20 additions & 3 deletions src/Sentry.Android.AssemblyReader/V2/StoreReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ static StoreReader()
GetArchPath (AndroidTargetArch.Arm),
GetArchPath (AndroidTargetArch.X86_64),
GetArchPath (AndroidTargetArch.X86),
GetArchPath (AndroidTargetArch.Arm64, newBlobName: true),
GetArchPath (AndroidTargetArch.Arm, newBlobName: true),
GetArchPath (AndroidTargetArch.X86_64, newBlobName: true),
GetArchPath (AndroidTargetArch.X86, newBlobName: true),
};
ApkPaths = paths.AsReadOnly();
AabBasePaths = ApkPaths;
Expand All @@ -52,10 +56,14 @@ static StoreReader()
GetArchPath (AndroidTargetArch.Arm, AabBaseDir),
GetArchPath (AndroidTargetArch.X86_64, AabBaseDir),
GetArchPath (AndroidTargetArch.X86, AabBaseDir),
GetArchPath (AndroidTargetArch.Arm64, AabBaseDir, true),
GetArchPath (AndroidTargetArch.Arm, AabBaseDir, true),
GetArchPath (AndroidTargetArch.X86_64, AabBaseDir, true),
GetArchPath (AndroidTargetArch.X86, AabBaseDir, true),
};
AabPaths = paths.AsReadOnly();

string GetArchPath(AndroidTargetArch arch, string? root = null)
string GetArchPath(AndroidTargetArch arch, string? root = null, bool newBlobName = false)
{
const string LibDirName = "lib";

Expand All @@ -70,7 +78,7 @@ string GetArchPath(AndroidTargetArch arch, string? root = null)
root = LibDirName;
}
parts.Add(abi);
parts.Add(GetBlobName(abi));
parts.Add(newBlobName ? NewBlobName : GetOldBlobName(abi));

return MonoAndroidHelper.MakeZipArchivePath(root, parts);
}
Expand All @@ -87,7 +95,16 @@ public StoreReader(Stream store, string path, DebugLogger? logger)
};
}

private static string GetBlobName(string abi) => $"libassemblies.{abi}.blob.so";
/// <summary>
/// This method returns the expected blob name for a given ABI for dotnet/android workload versions 10.0.101.1 and earlier
/// </summary>
private static string GetOldBlobName(string abi) => $"libassemblies.{abi}.blob.so";

/// <summary>
/// More recent versions of the dotnet/android workload (starting with 10.0.102) switched to a single blob name for
/// all ABIs. See: https://github.com/dotnet/android/pull/10638
/// </summary>
private const string NewBlobName = "libassembly-store.so";

protected override ulong GetStoreStartDataOffset() => elfOffset;

Expand Down
Loading