From df159c97837fca534842f5696cee4dba542368e8 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Mon, 26 May 2025 12:34:22 +0300 Subject: [PATCH 01/20] Set local scope branch for sentry-native submodule --- modules/sentry-native | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sentry-native b/modules/sentry-native index 70982f57..9920ed8d 160000 --- a/modules/sentry-native +++ b/modules/sentry-native @@ -1 +1 @@ -Subproject commit 70982f57b6407a1f3afe377d0c2a61ccbbfb2ce2 +Subproject commit 9920ed8d8b4a951485c106f4cac26dce3a54b65f From b9d7d9431f330654fc1e4a8a224a312e34e151b7 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Mon, 26 May 2025 12:37:15 +0300 Subject: [PATCH 02/20] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fcbc3588..29d12306 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Features - Add API allowing to get/set event fingerprint ([#920](https://github.com/getsentry/sentry-unreal/pull/920)) +- Add native local scope for Windows/Linux ([#928](https://github.com/getsentry/sentry-unreal/pull/928)) ### Dependencies From 0690dd44d6f88e10c996ca2776751a453b8b5923 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Mon, 26 May 2025 13:57:37 +0300 Subject: [PATCH 03/20] Bump submodule --- modules/sentry-native | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sentry-native b/modules/sentry-native index 9920ed8d..65217f0b 160000 --- a/modules/sentry-native +++ b/modules/sentry-native @@ -1 +1 @@ -Subproject commit 9920ed8d8b4a951485c106f4cac26dce3a54b65f +Subproject commit 65217f0b6b7a619bc16acba1f0aeb4bb68a8af77 From 6434596f03ea9b1f3203be33f9ee6c6c65054b55 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Mon, 26 May 2025 14:21:52 +0300 Subject: [PATCH 04/20] Bump submodule again --- modules/sentry-native | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sentry-native b/modules/sentry-native index 65217f0b..22cc4817 160000 --- a/modules/sentry-native +++ b/modules/sentry-native @@ -1 +1 @@ -Subproject commit 65217f0b6b7a619bc16acba1f0aeb4bb68a8af77 +Subproject commit 22cc4817ffdd4befc47e728f8932a06fb256d981 From d914c5a6a9f60544a9869079d22f1f94720cc740 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Tue, 27 May 2025 11:45:15 +0300 Subject: [PATCH 05/20] Add local scope implementation for desktop --- .../GenericPlatformSentryScope.cpp | 199 +++--------------- .../GenericPlatformSentryScope.h | 23 +- .../GenericPlatformSentrySubsystem.cpp | 83 +++----- .../GenericPlatformSentrySubsystem.h | 6 - .../Source/Sentry/Private/SentrySubsystem.cpp | 5 + .../Sentry/Private/Tests/SentryScope.spec.cpp | 88 ++++---- .../Tests/SentryScopeBeforeSendHandler.h | 23 ++ .../Source/Sentry/Public/SentrySubsystem.h | 2 + scripts/packaging/package-github.snapshot | 1 + .../packaging/package-marketplace.snapshot | 1 + 10 files changed, 147 insertions(+), 284 deletions(-) create mode 100644 plugin-dev/Source/Sentry/Private/Tests/SentryScopeBeforeSendHandler.h diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp index 73e2fcac..55bd2737 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp @@ -14,20 +14,13 @@ #if USE_SENTRY_NATIVE FGenericPlatformSentryScope::FGenericPlatformSentryScope() - : Level(ESentryLevel::Debug) { + Scope = sentry_local_scope_new(); } -FGenericPlatformSentryScope::FGenericPlatformSentryScope(const FGenericPlatformSentryScope& Scope) +FGenericPlatformSentryScope::FGenericPlatformSentryScope(sentry_scope_t* scope) + : Scope(scope) { - Dist = Scope.Dist; - Environment = Scope.Environment; - Fingerprint = Scope.Fingerprint; - Tags = Scope.Tags; - Extra = Scope.Extra; - Contexts = Scope.Contexts; - Breadcrumbs = TRingBuffer>(Scope.Breadcrumbs); - Level = Scope.Level; } FGenericPlatformSentryScope::~FGenericPlatformSentryScope() @@ -36,21 +29,11 @@ FGenericPlatformSentryScope::~FGenericPlatformSentryScope() void FGenericPlatformSentryScope::AddBreadcrumb(TSharedPtr breadcrumb) { - FScopeLock Lock(&CriticalSection); - - if (Breadcrumbs.Num() >= FSentryModule::Get().GetSettings()->MaxBreadcrumbs) - { - Breadcrumbs.PopFront(); - } - - Breadcrumbs.Add(StaticCastSharedPtr(breadcrumb)); + sentry_scope_add_breadcrumb(Scope, StaticCastSharedPtr(breadcrumb)->GetNativeObject()); } void FGenericPlatformSentryScope::ClearBreadcrumbs() { - FScopeLock Lock(&CriticalSection); - - Breadcrumbs.Empty(); } void FGenericPlatformSentryScope::AddAttachment(TSharedPtr attachment) @@ -65,237 +48,109 @@ void FGenericPlatformSentryScope::ClearAttachments() void FGenericPlatformSentryScope::SetTagValue(const FString& key, const FString& value) { - Tags.Add(key, value); + sentry_scope_set_tag(Scope, TCHAR_TO_UTF8(*key), TCHAR_TO_UTF8(*value)); } FString FGenericPlatformSentryScope::GetTagValue(const FString& key) const { - if (!Tags.Contains(key)) - return FString(); - - return Tags[key]; + return FString(); } void FGenericPlatformSentryScope::RemoveTag(const FString& key) { - Tags.Remove(key); } void FGenericPlatformSentryScope::SetTags(const TMap& tags) { - Tags.Append(tags); + for (const auto& tagItem : tags) + { + SetTagValue(tagItem.Key, tagItem.Value); + } } TMap FGenericPlatformSentryScope::GetTags() const { - return Tags; + return TMap(); } void FGenericPlatformSentryScope::SetDist(const FString& dist) { - Dist = dist; + // Set via options during initialization } FString FGenericPlatformSentryScope::GetDist() const { - return Dist; + return FString(); } void FGenericPlatformSentryScope::SetEnvironment(const FString& environment) { - Environment = environment; + // Set via options during initialization } FString FGenericPlatformSentryScope::GetEnvironment() const { - return Environment; + return FString(); } void FGenericPlatformSentryScope::SetFingerprint(const TArray& fingerprint) { - Fingerprint = fingerprint; + sentry_scope_set_fingerprints(Scope, FGenericPlatformSentryConverters::StringArrayToNative(fingerprint)); } TArray FGenericPlatformSentryScope::GetFingerprint() const { - return Fingerprint; + return TArray(); } void FGenericPlatformSentryScope::SetLevel(ESentryLevel level) { - Level = level; + sentry_scope_set_level(Scope, FGenericPlatformSentryConverters::SentryLevelToNative(level)); } ESentryLevel FGenericPlatformSentryScope::GetLevel() const { - - return Level; + return ESentryLevel::Debug; } void FGenericPlatformSentryScope::SetContext(const FString& key, const TMap& values) { - Contexts.Add(key, values); + sentry_scope_set_context(Scope, TCHAR_TO_UTF8(*key), FGenericPlatformSentryConverters::StringMapToNative(values)); } void FGenericPlatformSentryScope::RemoveContext(const FString& key) { - if (!Contexts.Contains(key)) - return; - - Contexts.Remove(key); } void FGenericPlatformSentryScope::SetExtraValue(const FString& key, const FString& value) { - Extra.Add(key, value); + sentry_scope_set_extra(Scope, TCHAR_TO_UTF8(*key), sentry_value_new_string(TCHAR_TO_UTF8(*value))); } FString FGenericPlatformSentryScope::GetExtraValue(const FString& key) const { - if (!Extra.Contains(key)) - return FString(); - - return Extra[key]; + return FString(); } void FGenericPlatformSentryScope::RemoveExtra(const FString& key) { - if (!Extra.Contains(key)) - return; - - Extra.Remove(key); } void FGenericPlatformSentryScope::SetExtras(const TMap& extras) { - Extra.Append(extras); + for (const auto& extraItem : extras) + { + SetExtraValue(extraItem.Key, extraItem.Value); + } } TMap FGenericPlatformSentryScope::GetExtras() const { - return Extra; + return TMap(); } void FGenericPlatformSentryScope::Clear() { - Dist = FString(); - Environment = FString(); - Fingerprint.Empty(); - Tags.Empty(); - Extra.Empty(); - Contexts.Empty(); - Breadcrumbs.Empty(); - Level = ESentryLevel::Debug; -} - -void FGenericPlatformSentryScope::Apply(TSharedPtr event) -{ - sentry_value_t nativeEvent = event->GetNativeObject(); - - sentry_value_t eventLevel = sentry_value_get_by_key(nativeEvent, "level"); - - FString scopeLevelStr = FGenericPlatformSentryConverters::SentryLevelToString(Level).ToLower(); - if (!scopeLevelStr.IsEmpty() && sentry_value_is_null(eventLevel)) - { - sentry_value_set_by_key(nativeEvent, "level", sentry_value_new_string(TCHAR_TO_ANSI(*scopeLevelStr))); - } - - if (!Dist.IsEmpty()) - { - sentry_value_set_by_key(nativeEvent, "dist", sentry_value_new_string(TCHAR_TO_ANSI(*Dist))); - } - - if (!Environment.IsEmpty()) - { - sentry_value_set_by_key(nativeEvent, "environment", sentry_value_new_string(TCHAR_TO_ANSI(*Environment))); - } - - if (Fingerprint.Num() > 0) - { - sentry_value_set_by_key(nativeEvent, "fingerprint", FGenericPlatformSentryConverters::StringArrayToNative(Fingerprint)); - } - - if (Tags.Num() > 0) - { - sentry_value_t tagsExtra = sentry_value_get_by_key(nativeEvent, "tags"); - if (sentry_value_is_null(tagsExtra)) - { - sentry_value_set_by_key(nativeEvent, "tags", FGenericPlatformSentryConverters::StringMapToNative(Tags)); - } - else - { - for (const auto& TagItem : Tags) - { - sentry_value_set_by_key(tagsExtra, TCHAR_TO_ANSI(*TagItem.Key), sentry_value_new_string(TCHAR_TO_ANSI(*TagItem.Value))); - } - } - } - - if (Extra.Num() > 0) - { - sentry_value_t eventExtra = sentry_value_get_by_key(nativeEvent, "extra"); - if (sentry_value_is_null(eventExtra)) - { - sentry_value_set_by_key(nativeEvent, "extra", FGenericPlatformSentryConverters::StringMapToNative(Extra)); - } - else - { - for (const auto& ExtraItem : Extra) - { - sentry_value_set_by_key(eventExtra, TCHAR_TO_ANSI(*ExtraItem.Key), sentry_value_new_string(TCHAR_TO_ANSI(*ExtraItem.Value))); - } - } - } - - if (Contexts.Num() > 0) - { - sentry_value_t eventContexts = sentry_value_get_by_key(nativeEvent, "contexts"); - if (sentry_value_is_null(eventContexts)) - { - eventContexts = sentry_value_new_object(); - - for (const auto& ContextsItem : Contexts) - { - sentry_value_set_by_key(eventContexts, TCHAR_TO_ANSI(*ContextsItem.Key), FGenericPlatformSentryConverters::StringMapToNative(ContextsItem.Value)); - } - - sentry_value_set_by_key(nativeEvent, "contexts", eventContexts); - } - else - { - for (const auto& ContextsItem : Contexts) - { - sentry_value_set_by_key(eventContexts, TCHAR_TO_ANSI(*ContextsItem.Key), FGenericPlatformSentryConverters::StringMapToNative(ContextsItem.Value)); - } - } - } - - if (!Breadcrumbs.IsEmpty()) - { - sentry_value_t eventBreadcrumbs = sentry_value_get_by_key(nativeEvent, "breadcrumbs"); - if (sentry_value_is_null(eventBreadcrumbs)) - { - eventBreadcrumbs = sentry_value_new_list(); - - for (const auto& Breadcrumb : Breadcrumbs) - { - sentry_value_t nativeBreadcrumb = Breadcrumb->GetNativeObject(); - sentry_value_incref(nativeBreadcrumb); - sentry_value_append(eventBreadcrumbs, nativeBreadcrumb); - } - - sentry_value_set_by_key(nativeEvent, "breadcrumbs", eventBreadcrumbs); - } - else - { - for (const auto& Breadcrumb : Breadcrumbs) - { - sentry_value_t nativeBreadcrumb = Breadcrumb->GetNativeObject(); - sentry_value_incref(nativeBreadcrumb); - sentry_value_append(eventBreadcrumbs, nativeBreadcrumb); - } - } - } } #endif diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h index cbe9f839..ca9ed7f4 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h @@ -2,8 +2,7 @@ #pragma once -#include "Containers/RingBuffer.h" -#include "HAL/CriticalSection.h" +#include "Convenience/GenericPlatformSentryInclude.h" #include "Interface/SentryScopeInterface.h" @@ -16,7 +15,7 @@ class FGenericPlatformSentryScope : public ISentryScope { public: FGenericPlatformSentryScope(); - FGenericPlatformSentryScope(const FGenericPlatformSentryScope& Scope); + FGenericPlatformSentryScope(sentry_scope_t* scope); virtual ~FGenericPlatformSentryScope() override; virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; @@ -45,24 +44,8 @@ class FGenericPlatformSentryScope : public ISentryScope virtual TMap GetExtras() const override; virtual void Clear() override; - void Apply(TSharedPtr event); - private: - FString Dist; - FString Environment; - - TArray Fingerprint; - - TMap Tags; - TMap Extra; - - TMap> Contexts; - - TRingBuffer> Breadcrumbs; - - ESentryLevel Level; - - FCriticalSection CriticalSection; + sentry_scope_t* Scope; }; typedef FGenericPlatformSentryScope FPlatformSentryScope; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 705bb0c5..6912790a 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -104,8 +104,6 @@ sentry_value_t FGenericPlatformSentrySubsystem::OnBeforeSend(sentry_value_t even TSharedPtr Event = MakeShareable(new FGenericPlatformSentryEvent(event)); - GetCurrentScope()->Apply(Event); - if (FUObjectThreadContext::Get().IsRoutingPostLoad) { UE_LOG(LogSentrySdk, Log, TEXT("Executing `beforeSend` handler is not allowed during object post-loading.")); @@ -175,12 +173,8 @@ sentry_value_t FGenericPlatformSentrySubsystem::OnCrash(const sentry_ucontext_t* IFileManager::Get().Copy(*GetGpuDumpBackupPath(), *SentryFileUtils::GetGpuDumpPath()); } - FGenericPlatformSentryCrashContext::Get()->Apply(GetCurrentScope()); - TSharedPtr Event = MakeShareable(new FGenericPlatformSentryEvent(event, true)); - GetCurrentScope()->Apply(Event); - if (FUObjectThreadContext::Get().IsRoutingPostLoad) { UE_LOG(LogSentrySdk, Log, TEXT("Executing `beforeSend` handler is not allowed when post-loading.")); @@ -227,8 +221,6 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se beforeSend = beforeSendHandler; beforeBreadcrumb = beforeBreadcrumbHandler; - scopeStack.Push(MakeShareable(new FGenericPlatformSentryScope())); - sentry_options_t* options = sentry_options_new(); if (settings->EnableAutoLogAttachment) @@ -318,8 +310,6 @@ void FGenericPlatformSentrySubsystem::Close() isEnabled = false; sentry_close(); - - scopeStack.Empty(); } bool FGenericPlatformSentrySubsystem::IsEnabled() @@ -353,14 +343,14 @@ void FGenericPlatformSentrySubsystem::AddBreadcrumb(TSharedPtr(breadcrumb)->GetNativeObject(), nullptr, this); - if (sentry_value_is_null(processdBreadcrumb)) + sentry_value_t processedBreadcrumb = HandleBeforeBreadcrumb(StaticCastSharedPtr(breadcrumb)->GetNativeObject(), nullptr, this); + if (sentry_value_is_null(processedBreadcrumb)) { return; } } - GetCurrentScope()->AddBreadcrumb(breadcrumb); + sentry_add_breadcrumb(StaticCastSharedPtr(breadcrumb)->GetNativeObject()); } void FGenericPlatformSentrySubsystem::AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap& Data, ESentryLevel Level) @@ -381,40 +371,43 @@ void FGenericPlatformSentrySubsystem::AddBreadcrumbWithParams(const FString& Mes } } - GetCurrentScope()->AddBreadcrumb(Breadcrumb); + sentry_add_breadcrumb(StaticCastSharedPtr(Breadcrumb)->GetNativeObject()); } void FGenericPlatformSentrySubsystem::ClearBreadcrumbs() { - GetCurrentScope()->ClearBreadcrumbs(); + // Not implemented in sentry-native } TSharedPtr FGenericPlatformSentrySubsystem::CaptureMessage(const FString& message, ESentryLevel level) { - sentry_value_t sentryEvent = sentry_value_new_message_event(FGenericPlatformSentryConverters::SentryLevelToNative(level), nullptr, TCHAR_TO_UTF8(*message)); + sentry_value_t nativeEvent = sentry_value_new_message_event(FGenericPlatformSentryConverters::SentryLevelToNative(level), nullptr, TCHAR_TO_UTF8(*message)); if (isStackTraceEnabled) { - sentry_value_set_stacktrace(sentryEvent, nullptr, 0); + sentry_value_set_stacktrace(nativeEvent, nullptr, 0); } - sentry_uuid_t id = sentry_capture_event(sentryEvent); + sentry_uuid_t id = sentry_capture_event(nativeEvent); return MakeShareable(new FGenericPlatformSentryId(id)); } TSharedPtr FGenericPlatformSentrySubsystem::CaptureMessageWithScope(const FString& message, ESentryLevel level, const FSentryScopeDelegate& onConfigureScope) { - FScopeLock Lock(&CriticalSection); + sentry_value_t nativeEvent = sentry_value_new_message_event(FGenericPlatformSentryConverters::SentryLevelToNative(level), nullptr, TCHAR_TO_UTF8(*message)); - TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(*GetCurrentScope())); + if (isStackTraceEnabled) + { + sentry_value_set_stacktrace(nativeEvent, nullptr, 0); + } - onConfigureScope.ExecuteIfBound(NewLocalScope); + sentry_scope_t *scope = sentry_local_scope_new(); - scopeStack.Push(NewLocalScope); - TSharedPtr Id = CaptureMessage(message, level); - scopeStack.Pop(); + TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(scope)); + onConfigureScope.ExecuteIfBound(NewLocalScope); - return Id; + sentry_uuid_t id = sentry_capture_event_with_scope(nativeEvent, scope); + return MakeShareable(new FGenericPlatformSentryId(id)); } TSharedPtr FGenericPlatformSentrySubsystem::CaptureEvent(TSharedPtr event) @@ -434,17 +427,22 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureEvent(TSharedPtr FGenericPlatformSentrySubsystem::CaptureEventWithScope(TSharedPtr event, const FSentryScopeDelegate& onScopeConfigure) { - FScopeLock Lock(&CriticalSection); + TSharedPtr Event = StaticCastSharedPtr(event); - TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(*GetCurrentScope())); + sentry_value_t nativeEvent = Event->GetNativeObject(); - onScopeConfigure.ExecuteIfBound(NewLocalScope); + if (isStackTraceEnabled) + { + sentry_value_set_stacktrace(nativeEvent, nullptr, 0); + } - scopeStack.Push(NewLocalScope); - TSharedPtr Id = CaptureEvent(event); - scopeStack.Pop(); + sentry_scope_t *scope = sentry_local_scope_new(); + + TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(scope)); + onScopeConfigure.ExecuteIfBound(NewLocalScope); - return Id; + sentry_uuid_t id = sentry_capture_event_with_scope(nativeEvent, scope); + return MakeShareable(new FGenericPlatformSentryId(id)); } TSharedPtr FGenericPlatformSentrySubsystem::CaptureEnsure(const FString& type, const FString& message) @@ -497,12 +495,12 @@ void FGenericPlatformSentrySubsystem::RemoveUser() void FGenericPlatformSentrySubsystem::ConfigureScope(const FSentryScopeDelegate& onConfigureScope) { - onConfigureScope.ExecuteIfBound(GetCurrentScope()); + // Not implemented in sentry-native } void FGenericPlatformSentrySubsystem::SetContext(const FString& key, const TMap& values) { - GetCurrentScope()->SetContext(key, values); + sentry_set_context(TCHAR_TO_UTF8(*key), FGenericPlatformSentryConverters::StringMapToNative(values)); if (crashReporter) { @@ -512,7 +510,7 @@ void FGenericPlatformSentrySubsystem::SetContext(const FString& key, const TMap< void FGenericPlatformSentrySubsystem::SetTag(const FString& key, const FString& value) { - GetCurrentScope()->SetTagValue(key, value); + sentry_set_tag(TCHAR_TO_UTF8(*key), TCHAR_TO_UTF8(*value)); if (crashReporter) { @@ -522,7 +520,7 @@ void FGenericPlatformSentrySubsystem::SetTag(const FString& key, const FString& void FGenericPlatformSentrySubsystem::RemoveTag(const FString& key) { - GetCurrentScope()->RemoveTag(key); + sentry_remove_tag(TCHAR_TO_UTF8(*key)); if (crashReporter) { @@ -532,7 +530,7 @@ void FGenericPlatformSentrySubsystem::RemoveTag(const FString& key) void FGenericPlatformSentrySubsystem::SetLevel(ESentryLevel level) { - GetCurrentScope()->SetLevel(level); + sentry_set_level(FGenericPlatformSentryConverters::SentryLevelToNative(level)); } void FGenericPlatformSentrySubsystem::StartSession() @@ -626,17 +624,6 @@ FString FGenericPlatformSentrySubsystem::GetGpuDumpBackupPath() const return GpuDumpFullPath; } -TSharedPtr FGenericPlatformSentrySubsystem::GetCurrentScope() -{ - if (scopeStack.Num() == 0) - { - UE_LOG(LogSentrySdk, Warning, TEXT("Scope stack is empty.")); - return nullptr; - } - - return scopeStack.Top(); -} - FString FGenericPlatformSentrySubsystem::GetHandlerPath() const { const FString HandlerPath = FPaths::Combine(FSentryModule::Get().GetBinariesPath(), GetHandlerExecutableName()); diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index 5ba1c4a4..e8dc52e7 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -53,8 +53,6 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem FString GetGpuDumpBackupPath() const; - TSharedPtr GetCurrentScope(); - protected: virtual void ConfigureHandlerPath(sentry_options_t* Options) {} virtual void ConfigureDatabasePath(sentry_options_t* Options) {} @@ -87,16 +85,12 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem TSharedPtr crashReporter; - TArray> scopeStack; - bool isEnabled; bool isStackTraceEnabled; bool isPiiAttachmentEnabled; bool isScreenshotAttachmentEnabled; - FCriticalSection CriticalSection; - FString databaseParentPath; }; diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index d4d5ba33..304071ae 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -146,6 +146,11 @@ void USentrySubsystem::Initialize() } void USentrySubsystem::InitializeWithSettings(const FConfigureSettingsDelegate& OnConfigureSettings) +{ + return InitializeWithSettings(FConfigureSettingsNativeDelegate::CreateUFunction(const_cast(OnConfigureSettings.GetUObject()), OnConfigureSettings.GetFunctionName())); +} + +void USentrySubsystem::InitializeWithSettings(const FConfigureSettingsNativeDelegate& OnConfigureSettings) { USentrySettings* Settings = FSentryModule::Get().GetSettings(); check(Settings); diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp index 05111470..736270c3 100644 --- a/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp @@ -3,11 +3,12 @@ #include "SentryScope.h" #include "SentryEvent.h" #include "SentryTests.h" +#include "SentryScopeBeforeSendHandler.h" #include "SentryDataTypes.h" - -#include "Interface/SentryEventInterface.h" -#include "Interface/SentryScopeInterface.h" +#include "SentrySettings.h" +#include "SentrySubsystem.h" +#include "Engine/Engine.h" #include "Misc/AutomationTest.h" @@ -16,6 +17,8 @@ #include "GenericPlatform/Infrastructure/GenericPlatformSentryConverters.h" +TDelegate UScopeTestBeforeSendHandler::OnScopeTestBeforeSendHandler; + #if WITH_AUTOMATION_TESTS BEGIN_DEFINE_SPEC(SentryScopeSpec, "Sentry.SentryScope", EAutomationTestFlags::ProductFilter | SentryApplicationContextMask) @@ -51,6 +54,7 @@ void SentryScopeSpec::Define() TestFingerprint.Add(TEXT("F3")); }); +#if (PLATFORM_APPLE || PLATFORM_ANDROID) && !USE_SENTRY_NATIVE Describe("Scope tags", [this]() { It("should persist value when single item set", [this]() @@ -142,48 +146,56 @@ void SentryScopeSpec::Define() TestTrue("Scope extras", SentryScope->GetExtras().Num() == 0); }); }); +#endif -#if (PLATFORM_WINDOWS || PLATFORM_LINUX) && USE_SENTRY_NATIVE +#if (PLATFORM_MICROSOFT || PLATFORM_LINUX) && USE_SENTRY_NATIVE Describe("Scope params", [this]() { It("should be applied to event", [this]() { - SentryScope->SetLevel(ESentryLevel::Fatal); - SentryScope->SetDist(TestDist); - SentryScope->SetEnvironment(TestEnvironment); - SentryScope->SetFingerprint(TestFingerprint); - SentryScope->SetTags(TestTags); - SentryScope->SetExtras(TestExtras); - SentryScope->SetContext(TEXT("TestContext"), TestContext); + USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem(); + SentrySubsystem->InitializeWithSettings(FConfigureSettingsNativeDelegate::CreateLambda([=](USentrySettings* Settings) + { + Settings->BeforeSendHandler = UScopeTestBeforeSendHandler::StaticClass(); + })); + + UScopeTestBeforeSendHandler::OnScopeTestBeforeSendHandler.BindLambda([this](USentryEvent* SentryEvent) + { + TSharedPtr Event = StaticCastSharedPtr(SentryEvent->GetNativeObject()); + + sentry_value_t NativeEvent = Event->GetNativeObject(); + + sentry_value_t level = sentry_value_get_by_key(NativeEvent, "level"); + sentry_value_t fingerprint = sentry_value_get_by_key(NativeEvent, "fingerprint"); + sentry_value_t tags = sentry_value_get_by_key(NativeEvent, "tags"); + sentry_value_t extra = sentry_value_get_by_key(NativeEvent, "extra"); + sentry_value_t contexts = sentry_value_get_by_key(NativeEvent, "contexts"); + + sentry_value_t testContext = sentry_value_get_by_key(contexts, "TestContext"); + + TestEqual("Event level", FGenericPlatformSentryConverters::SentryLevelToUnreal(level), ESentryLevel::Fatal); + TestEqual("Event fingerprint", FGenericPlatformSentryConverters::StringArrayToUnreal(fingerprint), TestFingerprint); + TestEqual("Event tags 1", FGenericPlatformSentryConverters::StringMapToUnreal(tags)[TEXT("TagsKey1")], TestTags[TEXT("TagsKey1")]); + TestEqual("Event tags 2", FGenericPlatformSentryConverters::StringMapToUnreal(tags)[TEXT("TagsKey2")], TestTags[TEXT("TagsKey2")]); + TestEqual("Event extra 1", FGenericPlatformSentryConverters::StringMapToUnreal(extra)[TEXT("ExtrasKey1")], TestExtras[TEXT("ExtrasKey1")]); + TestEqual("Event extra 2", FGenericPlatformSentryConverters::StringMapToUnreal(extra)[TEXT("ExtrasKey2")], TestExtras[TEXT("ExtrasKey2")]); + TestEqual("Event context 1", FGenericPlatformSentryConverters::StringMapToUnreal(testContext)[TEXT("ContextKey1")], TestContext[TEXT("ContextKey1")]); + TestEqual("Event context 2", FGenericPlatformSentryConverters::StringMapToUnreal(testContext)[TEXT("ContextKey2")], TestContext[TEXT("ContextKey2")]); + }); USentryEvent* SentryEvent = USentryEvent::Create(CreateSharedSentryEvent()); - - TSharedPtr Event = StaticCastSharedPtr(SentryEvent->GetNativeObject()); - - StaticCastSharedPtr(SentryScope->GetNativeObject())->Apply(Event); - - sentry_value_t NativeEvent = Event->GetNativeObject(); - - sentry_value_t level = sentry_value_get_by_key(NativeEvent, "level"); - sentry_value_t dist = sentry_value_get_by_key(NativeEvent, "dist"); - sentry_value_t environment = sentry_value_get_by_key(NativeEvent, "environment"); - sentry_value_t fingerprint = sentry_value_get_by_key(NativeEvent, "fingerprint"); - sentry_value_t tags = sentry_value_get_by_key(NativeEvent, "tags"); - sentry_value_t extra = sentry_value_get_by_key(NativeEvent, "extra"); - - sentry_value_t contexts = sentry_value_get_by_key(NativeEvent, "contexts"); - sentry_value_t testContext = sentry_value_get_by_key(contexts, "TestContext"); - - TestEqual("Event level", FGenericPlatformSentryConverters::SentryLevelToUnreal(level), ESentryLevel::Fatal); - TestEqual("Event dist", FString(sentry_value_as_string(dist)), TestDist); - TestEqual("Event environment", FString(sentry_value_as_string(environment)), TestEnvironment); - TestEqual("Event fingerprint", FGenericPlatformSentryConverters::StringArrayToUnreal(fingerprint), TestFingerprint); - TestEqual("Event tags 1", FGenericPlatformSentryConverters::StringMapToUnreal(tags)[TEXT("TagsKey1")], TestTags[TEXT("TagsKey1")]); - TestEqual("Event tags 2", FGenericPlatformSentryConverters::StringMapToUnreal(tags)[TEXT("TagsKey2")], TestTags[TEXT("TagsKey2")]); - TestEqual("Event extra 1", FGenericPlatformSentryConverters::StringMapToUnreal(extra)[TEXT("ExtrasKey1")], TestExtras[TEXT("ExtrasKey1")]); - TestEqual("Event extra 2", FGenericPlatformSentryConverters::StringMapToUnreal(extra)[TEXT("ExtrasKey2")], TestExtras[TEXT("ExtrasKey2")]); - TestEqual("Event context 1", FGenericPlatformSentryConverters::StringMapToUnreal(testContext)[TEXT("ContextKey1")], TestContext[TEXT("ContextKey1")]); - TestEqual("Event context 2", FGenericPlatformSentryConverters::StringMapToUnreal(testContext)[TEXT("ContextKey2")], TestContext[TEXT("ContextKey2")]); + SentrySubsystem->CaptureEventWithScope(SentryEvent, FConfigureScopeNativeDelegate::CreateLambda([this](USentryScope* Scope) + { + Scope->SetLevel(ESentryLevel::Fatal); + Scope->SetFingerprint(TestFingerprint); + Scope->SetTags(TestTags); + Scope->SetExtras(TestExtras); + Scope->SetContext(TEXT("TestContext"), TestContext); + })); + + UScopeTestBeforeSendHandler::OnScopeTestBeforeSendHandler.Unbind(); + + SentrySubsystem->Close(); }); }); #endif diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryScopeBeforeSendHandler.h b/plugin-dev/Source/Sentry/Private/Tests/SentryScopeBeforeSendHandler.h new file mode 100644 index 00000000..9b19ab27 --- /dev/null +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryScopeBeforeSendHandler.h @@ -0,0 +1,23 @@ +// Copyright (c) 2025 Sentry. All Rights Reserved. + +#pragma once + +#include "SentryBeforeSendHandler.h" +#include "SentryEvent.h" +#include "SentryHint.h" + +#include "SentryScopeBeforeSendHandler.generated.h" + +UCLASS() +class UScopeTestBeforeSendHandler : public USentryBeforeSendHandler +{ + GENERATED_BODY() +public: + virtual USentryEvent* HandleBeforeSend_Implementation(USentryEvent* SentryEvent, USentryHint* Hint) override + { + OnScopeTestBeforeSendHandler.ExecuteIfBound(SentryEvent); + return Super::HandleBeforeSend_Implementation(SentryEvent, Hint); + } + + static TDelegate OnScopeTestBeforeSendHandler; +}; diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index 341f6aaa..ac6bee08 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -25,6 +25,7 @@ class ISentrySubsystem; class FSentryOutputDevice; class FSentryErrorOutputDevice; +DECLARE_DELEGATE_OneParam(FConfigureSettingsNativeDelegate, USentrySettings*); DECLARE_DYNAMIC_DELEGATE_OneParam(FConfigureSettingsDelegate, USentrySettings*, Settings); /** @@ -48,6 +49,7 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem */ UFUNCTION(BlueprintCallable, Category = "Sentry") void InitializeWithSettings(const FConfigureSettingsDelegate& OnConfigureSettings); + void InitializeWithSettings(const FConfigureSettingsNativeDelegate& OnConfigureSettings); /** Closes the Sentry SDK. */ UFUNCTION(BlueprintCallable, Category = "Sentry") diff --git a/scripts/packaging/package-github.snapshot b/scripts/packaging/package-github.snapshot index 1e2f9176..6790c4b5 100644 --- a/scripts/packaging/package-github.snapshot +++ b/scripts/packaging/package-github.snapshot @@ -172,6 +172,7 @@ Source/Sentry/Private/SentryUserFeedback.cpp Source/Sentry/Private/Tests/SentryBreadcrumb.spec.cpp Source/Sentry/Private/Tests/SentryEvent.spec.cpp Source/Sentry/Private/Tests/SentryScope.spec.cpp +Source/Sentry/Private/Tests/SentryScopeBeforeSendHandler.h Source/Sentry/Private/Tests/SentrySubsystem.spec.cpp Source/Sentry/Private/Tests/SentryTests.h Source/Sentry/Private/Tests/SentryUser.spec.cpp diff --git a/scripts/packaging/package-marketplace.snapshot b/scripts/packaging/package-marketplace.snapshot index 66a057d0..45ec1307 100644 --- a/scripts/packaging/package-marketplace.snapshot +++ b/scripts/packaging/package-marketplace.snapshot @@ -171,6 +171,7 @@ Source/Sentry/Private/SentryUserFeedback.cpp Source/Sentry/Private/Tests/SentryBreadcrumb.spec.cpp Source/Sentry/Private/Tests/SentryEvent.spec.cpp Source/Sentry/Private/Tests/SentryScope.spec.cpp +Source/Sentry/Private/Tests/SentryScopeBeforeSendHandler.h Source/Sentry/Private/Tests/SentrySubsystem.spec.cpp Source/Sentry/Private/Tests/SentryTests.h Source/Sentry/Private/Tests/SentryUser.spec.cpp From 40b0774d5e42e190c83d11176bbc9c10e9cbfd9f Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Tue, 27 May 2025 12:43:16 +0300 Subject: [PATCH 06/20] Fix lint errors --- .../GenericPlatform/GenericPlatformSentrySubsystem.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 6912790a..a43192e9 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -401,7 +401,7 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureMessageWithScope(c sentry_value_set_stacktrace(nativeEvent, nullptr, 0); } - sentry_scope_t *scope = sentry_local_scope_new(); + sentry_scope_t* scope = sentry_local_scope_new(); TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(scope)); onConfigureScope.ExecuteIfBound(NewLocalScope); @@ -436,7 +436,7 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureEventWithScope(TSh sentry_value_set_stacktrace(nativeEvent, nullptr, 0); } - sentry_scope_t *scope = sentry_local_scope_new(); + sentry_scope_t* scope = sentry_local_scope_new(); TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(scope)); onScopeConfigure.ExecuteIfBound(NewLocalScope); From f2bb0edc69580f1870721d84ce822409eaeff47e Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Tue, 27 May 2025 12:44:52 +0300 Subject: [PATCH 07/20] Fix --- .../GenericPlatform/GenericPlatformSentrySubsystem.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index a43192e9..f9bee90d 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -401,7 +401,7 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureMessageWithScope(c sentry_value_set_stacktrace(nativeEvent, nullptr, 0); } - sentry_scope_t* scope = sentry_local_scope_new(); + sentry_scope_t* scope = sentry_local_scope_new(); TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(scope)); onConfigureScope.ExecuteIfBound(NewLocalScope); @@ -436,7 +436,7 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureEventWithScope(TSh sentry_value_set_stacktrace(nativeEvent, nullptr, 0); } - sentry_scope_t* scope = sentry_local_scope_new(); + sentry_scope_t* scope = sentry_local_scope_new(); TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(scope)); onScopeConfigure.ExecuteIfBound(NewLocalScope); From 7a0f5dc6d76ad58204593f2178ab6a31bcd76d0f Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Tue, 27 May 2025 12:47:32 +0300 Subject: [PATCH 08/20] Include order --- plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp index 736270c3..e1e5afe9 100644 --- a/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp @@ -2,13 +2,13 @@ #include "SentryScope.h" #include "SentryEvent.h" -#include "SentryTests.h" #include "SentryScopeBeforeSendHandler.h" +#include "SentryTests.h" +#include "Engine/Engine.h" #include "SentryDataTypes.h" #include "SentrySettings.h" #include "SentrySubsystem.h" -#include "Engine/Engine.h" #include "Misc/AutomationTest.h" From df4cbe2159ad80fa3342bf3829cdf501d68125bf Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Tue, 27 May 2025 17:43:07 +0300 Subject: [PATCH 09/20] Revert scope data caching on Unreal's side --- .../GenericPlatformSentryScope.cpp | 113 ++++++++++++++---- .../GenericPlatformSentryScope.h | 18 ++- .../GenericPlatformSentrySubsystem.cpp | 6 +- .../Sentry/Private/Tests/SentryScope.spec.cpp | 18 ++- 4 files changed, 115 insertions(+), 40 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp index 55bd2737..13ed32b8 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp @@ -14,12 +14,7 @@ #if USE_SENTRY_NATIVE FGenericPlatformSentryScope::FGenericPlatformSentryScope() -{ - Scope = sentry_local_scope_new(); -} - -FGenericPlatformSentryScope::FGenericPlatformSentryScope(sentry_scope_t* scope) - : Scope(scope) + : Level(ESentryLevel::Debug) { } @@ -29,11 +24,17 @@ FGenericPlatformSentryScope::~FGenericPlatformSentryScope() void FGenericPlatformSentryScope::AddBreadcrumb(TSharedPtr breadcrumb) { - sentry_scope_add_breadcrumb(Scope, StaticCastSharedPtr(breadcrumb)->GetNativeObject()); + if (Breadcrumbs.Num() >= FSentryModule::Get().GetSettings()->MaxBreadcrumbs) + { + Breadcrumbs.PopFront(); + } + + Breadcrumbs.Add(StaticCastSharedPtr(breadcrumb)); } void FGenericPlatformSentryScope::ClearBreadcrumbs() { + Breadcrumbs.Empty(); } void FGenericPlatformSentryScope::AddAttachment(TSharedPtr attachment) @@ -48,29 +49,31 @@ void FGenericPlatformSentryScope::ClearAttachments() void FGenericPlatformSentryScope::SetTagValue(const FString& key, const FString& value) { - sentry_scope_set_tag(Scope, TCHAR_TO_UTF8(*key), TCHAR_TO_UTF8(*value)); + Tags.Add(key, value); + } FString FGenericPlatformSentryScope::GetTagValue(const FString& key) const { - return FString(); + if (!Tags.Contains(key)) + return FString(); + + return Tags[key]; } void FGenericPlatformSentryScope::RemoveTag(const FString& key) { + Tags.Remove(key); } void FGenericPlatformSentryScope::SetTags(const TMap& tags) { - for (const auto& tagItem : tags) - { - SetTagValue(tagItem.Key, tagItem.Value); - } + Tags.Append(tags); } TMap FGenericPlatformSentryScope::GetTags() const { - return TMap(); + return Tags; } void FGenericPlatformSentryScope::SetDist(const FString& dist) @@ -95,62 +98,120 @@ FString FGenericPlatformSentryScope::GetEnvironment() const void FGenericPlatformSentryScope::SetFingerprint(const TArray& fingerprint) { - sentry_scope_set_fingerprints(Scope, FGenericPlatformSentryConverters::StringArrayToNative(fingerprint)); + Fingerprint = fingerprint; } TArray FGenericPlatformSentryScope::GetFingerprint() const { - return TArray(); + return Fingerprint; } void FGenericPlatformSentryScope::SetLevel(ESentryLevel level) { - sentry_scope_set_level(Scope, FGenericPlatformSentryConverters::SentryLevelToNative(level)); + Level = level; } ESentryLevel FGenericPlatformSentryScope::GetLevel() const { - return ESentryLevel::Debug; + return Level; } void FGenericPlatformSentryScope::SetContext(const FString& key, const TMap& values) { - sentry_scope_set_context(Scope, TCHAR_TO_UTF8(*key), FGenericPlatformSentryConverters::StringMapToNative(values)); + Contexts.Add(key, values); } void FGenericPlatformSentryScope::RemoveContext(const FString& key) { + if (!Contexts.Contains(key)) + return; + + Contexts.Remove(key); } void FGenericPlatformSentryScope::SetExtraValue(const FString& key, const FString& value) { - sentry_scope_set_extra(Scope, TCHAR_TO_UTF8(*key), sentry_value_new_string(TCHAR_TO_UTF8(*value))); + Extra.Add(key, value); } FString FGenericPlatformSentryScope::GetExtraValue(const FString& key) const { - return FString(); + if (!Extra.Contains(key)) + return FString(); + + return Extra[key]; } void FGenericPlatformSentryScope::RemoveExtra(const FString& key) { + if (!Extra.Contains(key)) + return; + + Extra.Remove(key); } void FGenericPlatformSentryScope::SetExtras(const TMap& extras) { - for (const auto& extraItem : extras) - { - SetExtraValue(extraItem.Key, extraItem.Value); - } + Extra.Append(extras); } TMap FGenericPlatformSentryScope::GetExtras() const { - return TMap(); + return Extra; } void FGenericPlatformSentryScope::Clear() { + Dist = FString(); + Environment = FString(); + Fingerprint.Empty(); + Tags.Empty(); + Extra.Empty(); + Contexts.Empty(); + Breadcrumbs.Empty(); + Level = ESentryLevel::Debug;} + +void FGenericPlatformSentryScope::Apply(sentry_scope_t* scope) +{ + if (!Breadcrumbs.IsEmpty()) + { + for (const auto& Breadcrumb : Breadcrumbs) + { + sentry_value_t nativeBreadcrumb = Breadcrumb->GetNativeObject(); + sentry_scope_add_breadcrumb(scope, nativeBreadcrumb); + } + } + + if (Fingerprint.Num() > 0) + { + sentry_scope_set_fingerprints(scope, FGenericPlatformSentryConverters::StringArrayToNative(Fingerprint)); + } + + if (Tags.Num() > 0) + { + for (const auto& TagItem : Tags) + { + sentry_scope_set_tag(scope, TCHAR_TO_UTF8(*TagItem.Key), TCHAR_TO_UTF8(*TagItem.Value)); + } + } + + if (Extra.Num() > 0) + { + for (const auto& ExtraItem : Extra) + { + sentry_scope_set_extra(scope, TCHAR_TO_UTF8(*ExtraItem.Key), sentry_value_new_string(TCHAR_TO_UTF8(*ExtraItem.Value))); + } + } + + if (Contexts.Num() > 0) + { + for (const auto& ContextsItem : Contexts) + { + sentry_scope_set_context(scope, TCHAR_TO_UTF8(*ContextsItem.Key), FGenericPlatformSentryConverters::StringMapToNative(ContextsItem.Value)); + } + } + + sentry_scope_set_level(scope, FGenericPlatformSentryConverters::SentryLevelToNative(Level)); } #endif diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h index ca9ed7f4..098f4c12 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h @@ -2,6 +2,7 @@ #pragma once +#include "Containers/RingBuffer.h" #include "Convenience/GenericPlatformSentryInclude.h" #include "Interface/SentryScopeInterface.h" @@ -15,7 +16,6 @@ class FGenericPlatformSentryScope : public ISentryScope { public: FGenericPlatformSentryScope(); - FGenericPlatformSentryScope(sentry_scope_t* scope); virtual ~FGenericPlatformSentryScope() override; virtual void AddBreadcrumb(TSharedPtr breadcrumb) override; @@ -44,8 +44,22 @@ class FGenericPlatformSentryScope : public ISentryScope virtual TMap GetExtras() const override; virtual void Clear() override; + void Apply(sentry_scope_t* scope); + private: - sentry_scope_t* Scope; + FString Dist; + FString Environment; + + TArray Fingerprint; + + TMap Tags; + TMap Extra; + + TMap> Contexts; + + TRingBuffer> Breadcrumbs; + + ESentryLevel Level; }; typedef FGenericPlatformSentryScope FPlatformSentryScope; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index f9bee90d..d1b7fb6d 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -403,8 +403,9 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureMessageWithScope(c sentry_scope_t* scope = sentry_local_scope_new(); - TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(scope)); + TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope()); onConfigureScope.ExecuteIfBound(NewLocalScope); + NewLocalScope->Apply(scope); sentry_uuid_t id = sentry_capture_event_with_scope(nativeEvent, scope); return MakeShareable(new FGenericPlatformSentryId(id)); @@ -438,8 +439,9 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureEventWithScope(TSh sentry_scope_t* scope = sentry_local_scope_new(); - TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope(scope)); + TSharedPtr NewLocalScope = MakeShareable(new FGenericPlatformSentryScope()); onScopeConfigure.ExecuteIfBound(NewLocalScope); + NewLocalScope->Apply(scope); sentry_uuid_t id = sentry_capture_event_with_scope(nativeEvent, scope); return MakeShareable(new FGenericPlatformSentryId(id)); diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp index e1e5afe9..0f92a866 100644 --- a/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp @@ -54,7 +54,6 @@ void SentryScopeSpec::Define() TestFingerprint.Add(TEXT("F3")); }); -#if (PLATFORM_APPLE || PLATFORM_ANDROID) && !USE_SENTRY_NATIVE Describe("Scope tags", [this]() { It("should persist value when single item set", [this]() @@ -116,13 +115,13 @@ void SentryScopeSpec::Define() It("should persist their values", [this]() { SentryScope->SetLevel(ESentryLevel::Fatal); - SentryScope->SetDist(TestDist); - SentryScope->SetEnvironment(TestEnvironment); + // SentryScope->SetDist(TestDist); + // SentryScope->SetEnvironment(TestEnvironment); SentryScope->SetFingerprint(TestFingerprint); TestEqual("Scope level", SentryScope->GetLevel(), ESentryLevel::Fatal); - TestEqual("Scope dist", SentryScope->GetDist(), TestDist); - TestEqual("Scope environment", SentryScope->GetEnvironment(), TestEnvironment); + // TestEqual("Scope dist", SentryScope->GetDist(), TestDist); + // TestEqual("Scope environment", SentryScope->GetEnvironment(), TestEnvironment); TestEqual("Scope fingerprint", SentryScope->GetFingerprint(), TestFingerprint); }); }); @@ -131,22 +130,21 @@ void SentryScopeSpec::Define() { It("should be possible to clear", [this]() { - SentryScope->SetDist(TestDist); - SentryScope->SetEnvironment(TestEnvironment); + // SentryScope->SetDist(TestDist); + // SentryScope->SetEnvironment(TestEnvironment); SentryScope->SetFingerprint(TestFingerprint); SentryScope->SetTags(TestTags); SentryScope->SetExtras(TestExtras); SentryScope->Clear(); - TestTrue("Scope dist", SentryScope->GetDist().IsEmpty()); - TestTrue("Scope environment", SentryScope->GetEnvironment().IsEmpty()); + // TestTrue("Scope dist", SentryScope->GetDist().IsEmpty()); + // TestTrue("Scope environment", SentryScope->GetEnvironment().IsEmpty()); TestTrue("Scope fingerprint", SentryScope->GetFingerprint().Num() == 0); TestTrue("Scope tags", SentryScope->GetTags().Num() == 0); TestTrue("Scope extras", SentryScope->GetExtras().Num() == 0); }); }); -#endif #if (PLATFORM_MICROSOFT || PLATFORM_LINUX) && USE_SENTRY_NATIVE Describe("Scope params", [this]() From 74b0419471bbf5f0557ca38af50d3f12a01150d2 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 28 May 2025 14:16:07 +0300 Subject: [PATCH 10/20] Fix lint errors --- .../Private/GenericPlatform/GenericPlatformSentryScope.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp index 13ed32b8..bffb4df8 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp @@ -50,7 +50,6 @@ void FGenericPlatformSentryScope::ClearAttachments() void FGenericPlatformSentryScope::SetTagValue(const FString& key, const FString& value) { Tags.Add(key, value); - } FString FGenericPlatformSentryScope::GetTagValue(const FString& key) const @@ -169,7 +168,8 @@ void FGenericPlatformSentryScope::Clear() Extra.Empty(); Contexts.Empty(); Breadcrumbs.Empty(); - Level = ESentryLevel::Debug;} + Level = ESentryLevel::Debug; +} void FGenericPlatformSentryScope::Apply(sentry_scope_t* scope) { From 1fd94a643637912c92a9ff53b83496b44aee2710 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 28 May 2025 16:27:48 +0300 Subject: [PATCH 11/20] Remove env and dist setters from scope class --- .../Private/Android/AndroidSentryScope.cpp | 20 ----------- .../Private/Android/AndroidSentryScope.h | 4 --- .../Android/AndroidSentrySubsystem.cpp | 1 + .../Android/Java/SentryBridgeJava.java | 1 + .../Sentry/Private/Apple/AppleSentryScope.cpp | 22 ------------ .../Sentry/Private/Apple/AppleSentryScope.h | 4 --- .../Private/Apple/AppleSentrySubsystem.cpp | 1 + .../GenericPlatformSentryScope.cpp | 20 ----------- .../GenericPlatformSentryScope.h | 4 --- .../GenericPlatformSentrySubsystem.cpp | 1 + .../Private/Interface/SentryScopeInterface.h | 4 --- .../Sentry/Private/Null/NullSentryScope.h | 4 --- .../Source/Sentry/Private/SentryScope.cpp | 32 ------------------ .../Sentry/Private/Tests/SentryScope.spec.cpp | 11 ------ plugin-dev/Source/Sentry/Public/SentryScope.h | 16 --------- .../Source/Sentry/Public/SentrySettings.h | 4 +++ sample/Content/UI/W_SentryDemo.uasset | Bin 361240 -> 354183 bytes 17 files changed, 8 insertions(+), 141 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryScope.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryScope.cpp index a01b5231..596261ca 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryScope.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryScope.cpp @@ -99,26 +99,6 @@ TMap FAndroidSentryScope::GetTags() const return FAndroidSentryConverters::StringMapToUnreal(*tags); } -void FAndroidSentryScope::SetDist(const FString& dist) -{ - SetTagValue("dist", dist); -} - -FString FAndroidSentryScope::GetDist() const -{ - return GetTagValue("dist"); -} - -void FAndroidSentryScope::SetEnvironment(const FString& environment) -{ - SetTagValue("environment", environment); -} - -FString FAndroidSentryScope::GetEnvironment() const -{ - return GetTagValue("environment"); -} - void FAndroidSentryScope::SetFingerprint(const TArray& fingerprint) { CallMethod(SetFingerprintMethod, FAndroidSentryConverters::StringArrayToNative(fingerprint)->GetJObject()); diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryScope.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryScope.h index 775b96b0..960423e9 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentryScope.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentryScope.h @@ -23,10 +23,6 @@ class FAndroidSentryScope : public ISentryScope, public FSentryJavaObjectWrapper virtual void RemoveTag(const FString& key) override; virtual void SetTags(const TMap& tags) override; virtual TMap GetTags() const override; - virtual void SetDist(const FString& dist) override; - virtual FString GetDist() const override; - virtual void SetEnvironment(const FString& environment) override; - virtual FString GetEnvironment() const override; virtual void SetFingerprint(const TArray& fingerprint) override; virtual TArray GetFingerprint() const override; virtual void SetLevel(ESentryLevel level) override; diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index 114fce53..ebbf5ba8 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -33,6 +33,7 @@ void FAndroidSentrySubsystem::InitWithSettings(const USentrySettings* settings, SettingsJson->SetStringField(TEXT("dsn"), settings->Dsn); SettingsJson->SetStringField(TEXT("release"), settings->OverrideReleaseName ? settings->Release : settings->GetFormattedReleaseName()); SettingsJson->SetStringField(TEXT("environment"), settings->Environment); + SettingsJson->SetStringField(TEXT("dist"), settings->Dist); SettingsJson->SetBoolField(TEXT("autoSessionTracking"), settings->EnableAutoSessionTracking); SettingsJson->SetNumberField(TEXT("sessionTimeout"), settings->SessionTimeout); SettingsJson->SetBoolField(TEXT("enableStackTrace"), settings->AttachStacktrace); diff --git a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java index 5cf59c54..43c1e062 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java +++ b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java @@ -46,6 +46,7 @@ public void configure(SentryAndroidOptions options) { options.setDsn(settingJson.getString("dsn")); options.setRelease(settingJson.getString("release")); options.setEnvironment(settingJson.getString("environment")); + options.setDist(settingJson.getString("dist")); options.setEnableAutoSessionTracking(settingJson.getBoolean("autoSessionTracking")); options.setSessionTrackingIntervalMillis(settingJson.getLong("sessionTimeout")); options.setAttachStacktrace(settingJson.getBoolean("enableStackTrace")); diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentryScope.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentryScope.cpp index 5daaaea6..c4a991ee 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentryScope.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentryScope.cpp @@ -81,28 +81,6 @@ TMap FAppleSentryScope::GetTags() const return FAppleSentryConverters::StringMapToUnreal(scopeDict[@"tags"]); } -void FAppleSentryScope::SetDist(const FString& dist) -{ - [ScopeApple setDist:dist.GetNSString()]; -} - -FString FAppleSentryScope::GetDist() const -{ - NSDictionary* scopeDict = [ScopeApple serialize]; - return FString(scopeDict[@"dist"]); -} - -void FAppleSentryScope::SetEnvironment(const FString& environment) -{ - [ScopeApple setEnvironment:environment.GetNSString()]; -} - -FString FAppleSentryScope::GetEnvironment() const -{ - NSDictionary* scopeDict = [ScopeApple serialize]; - return FString(scopeDict[@"environment"]); -} - void FAppleSentryScope::SetFingerprint(const TArray& fingerprint) { [ScopeApple setFingerprint:FAppleSentryConverters::StringArrayToNative(fingerprint)]; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentryScope.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentryScope.h index 83e68a61..a0683a08 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentryScope.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentryScope.h @@ -24,10 +24,6 @@ class FAppleSentryScope : public ISentryScope virtual void RemoveTag(const FString& key) override; virtual void SetTags(const TMap& tags) override; virtual TMap GetTags() const override; - virtual void SetDist(const FString& dist) override; - virtual FString GetDist() const override; - virtual void SetEnvironment(const FString& environment) override; - virtual FString GetEnvironment() const override; virtual void SetFingerprint(const TArray& fingerprint) override; virtual TArray GetFingerprint() const override; virtual void SetLevel(ESentryLevel level) override; diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index f05da944..744e8e26 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -56,6 +56,7 @@ void FAppleSentrySubsystem::InitWithSettings(const USentrySettings* settings, US } #endif options.environment = settings->Environment.GetNSString(); + options.dist = settings->Dist.GetNSString(); options.enableAutoSessionTracking = settings->EnableAutoSessionTracking; options.sessionTrackingIntervalMillis = settings->SessionTimeout; options.releaseName = settings->OverrideReleaseName ? settings->Release.GetNSString() : settings->GetFormattedReleaseName().GetNSString(); diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp index 13ed32b8..c77c0992 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp @@ -76,26 +76,6 @@ TMap FGenericPlatformSentryScope::GetTags() const return Tags; } -void FGenericPlatformSentryScope::SetDist(const FString& dist) -{ - // Set via options during initialization -} - -FString FGenericPlatformSentryScope::GetDist() const -{ - return FString(); -} - -void FGenericPlatformSentryScope::SetEnvironment(const FString& environment) -{ - // Set via options during initialization -} - -FString FGenericPlatformSentryScope::GetEnvironment() const -{ - return FString(); -} - void FGenericPlatformSentryScope::SetFingerprint(const TArray& fingerprint) { Fingerprint = fingerprint; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h index 098f4c12..b55212ba 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.h @@ -27,10 +27,6 @@ class FGenericPlatformSentryScope : public ISentryScope virtual void RemoveTag(const FString& key) override; virtual void SetTags(const TMap& tags) override; virtual TMap GetTags() const override; - virtual void SetDist(const FString& dist) override; - virtual FString GetDist() const override; - virtual void SetEnvironment(const FString& environment) override; - virtual FString GetEnvironment() const override; virtual void SetFingerprint(const TArray& fingerprint) override; virtual TArray GetFingerprint() const override; virtual void SetLevel(ESentryLevel level) override; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index d1b7fb6d..e0923813 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -284,6 +284,7 @@ void FGenericPlatformSentrySubsystem::InitWithSettings(const USentrySettings* se } #endif // WITH_EDITOR sentry_options_set_environment(options, TCHAR_TO_ANSI(*settings->Environment)); + sentry_options_set_dist(options, TCHAR_TO_ANSI(*settings->Dist)); sentry_options_set_logger(options, PrintVerboseLog, nullptr); sentry_options_set_debug(options, settings->Debug); sentry_options_set_auto_session_tracking(options, settings->EnableAutoSessionTracking); diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentryScopeInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentryScopeInterface.h index 72a07fa3..37cd56f6 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentryScopeInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentryScopeInterface.h @@ -23,10 +23,6 @@ class ISentryScope virtual void RemoveTag(const FString& key) = 0; virtual void SetTags(const TMap& tags) = 0; virtual TMap GetTags() const = 0; - virtual void SetDist(const FString& dist) = 0; - virtual FString GetDist() const = 0; - virtual void SetEnvironment(const FString& environment) = 0; - virtual FString GetEnvironment() const = 0; virtual void SetFingerprint(const TArray& fingerprint) = 0; virtual TArray GetFingerprint() const = 0; virtual void SetLevel(ESentryLevel level) = 0; diff --git a/plugin-dev/Source/Sentry/Private/Null/NullSentryScope.h b/plugin-dev/Source/Sentry/Private/Null/NullSentryScope.h index 6e87f737..2dd12bc7 100644 --- a/plugin-dev/Source/Sentry/Private/Null/NullSentryScope.h +++ b/plugin-dev/Source/Sentry/Private/Null/NullSentryScope.h @@ -18,10 +18,6 @@ class FNullSentryScope final : public ISentryScope virtual void RemoveTag(const FString& key) override {} virtual void SetTags(const TMap& tags) override {} virtual TMap GetTags() const override { return {}; } - virtual void SetDist(const FString& dist) override {} - virtual FString GetDist() const override { return TEXT(""); } - virtual void SetEnvironment(const FString& environment) override {} - virtual FString GetEnvironment() const override { return TEXT(""); } virtual void SetFingerprint(const TArray& fingerprint) override {} virtual TArray GetFingerprint() const override { return {}; } virtual void SetLevel(ESentryLevel level) override {} diff --git a/plugin-dev/Source/Sentry/Private/SentryScope.cpp b/plugin-dev/Source/Sentry/Private/SentryScope.cpp index d09f578d..a005e14a 100644 --- a/plugin-dev/Source/Sentry/Private/SentryScope.cpp +++ b/plugin-dev/Source/Sentry/Private/SentryScope.cpp @@ -83,38 +83,6 @@ TMap USentryScope::GetTags() const return NativeImpl->GetTags(); } -void USentryScope::SetDist(const FString& Dist) -{ - if (!NativeImpl) - return; - - NativeImpl->SetDist(Dist); -} - -FString USentryScope::GetDist() const -{ - if (!NativeImpl) - return FString(); - - return NativeImpl->GetDist(); -} - -void USentryScope::SetEnvironment(const FString& Environment) -{ - if (!NativeImpl) - return; - - NativeImpl->SetEnvironment(Environment); -} - -FString USentryScope::GetEnvironment() const -{ - if (!NativeImpl) - return FString(); - - return NativeImpl->GetEnvironment(); -} - void USentryScope::SetFingerprint(const TArray& Fingerprint) { if (!NativeImpl) diff --git a/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp b/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp index 0f92a866..a0921fd0 100644 --- a/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp +++ b/plugin-dev/Source/Sentry/Private/Tests/SentryScope.spec.cpp @@ -37,9 +37,6 @@ void SentryScopeSpec::Define() { SentryScope = USentryScope::Create(CreateSharedSentryScope()); - TestDist = TEXT("dist_str"); - TestEnvironment = TEXT("env_str"); - TestTags.Add(TEXT("TagsKey1"), TEXT("TagsVal1")); TestTags.Add(TEXT("TagsKey2"), TEXT("TagsVal2")); @@ -115,13 +112,9 @@ void SentryScopeSpec::Define() It("should persist their values", [this]() { SentryScope->SetLevel(ESentryLevel::Fatal); - // SentryScope->SetDist(TestDist); - // SentryScope->SetEnvironment(TestEnvironment); SentryScope->SetFingerprint(TestFingerprint); TestEqual("Scope level", SentryScope->GetLevel(), ESentryLevel::Fatal); - // TestEqual("Scope dist", SentryScope->GetDist(), TestDist); - // TestEqual("Scope environment", SentryScope->GetEnvironment(), TestEnvironment); TestEqual("Scope fingerprint", SentryScope->GetFingerprint(), TestFingerprint); }); }); @@ -130,16 +123,12 @@ void SentryScopeSpec::Define() { It("should be possible to clear", [this]() { - // SentryScope->SetDist(TestDist); - // SentryScope->SetEnvironment(TestEnvironment); SentryScope->SetFingerprint(TestFingerprint); SentryScope->SetTags(TestTags); SentryScope->SetExtras(TestExtras); SentryScope->Clear(); - // TestTrue("Scope dist", SentryScope->GetDist().IsEmpty()); - // TestTrue("Scope environment", SentryScope->GetEnvironment().IsEmpty()); TestTrue("Scope fingerprint", SentryScope->GetFingerprint().Num() == 0); TestTrue("Scope tags", SentryScope->GetTags().Num() == 0); TestTrue("Scope extras", SentryScope->GetExtras().Num() == 0); diff --git a/plugin-dev/Source/Sentry/Public/SentryScope.h b/plugin-dev/Source/Sentry/Public/SentryScope.h index 0ca0dba9..f94ce0a5 100644 --- a/plugin-dev/Source/Sentry/Public/SentryScope.h +++ b/plugin-dev/Source/Sentry/Public/SentryScope.h @@ -60,22 +60,6 @@ class SENTRY_API USentryScope : public UObject, public TSentryImplWrapper GetTags() const; - /** Sets dist in the scope. */ - UFUNCTION(BlueprintCallable, Category = "Sentry") - void SetDist(const FString& Dist); - - /** Gets dist in the scope. */ - UFUNCTION(BlueprintPure, Category = "Sentry") - FString GetDist() const; - - /** Sets environment in the scope. */ - UFUNCTION(BlueprintCallable, Category = "Sentry") - void SetEnvironment(const FString& Environment); - - /** Gets environment in the scope. */ - UFUNCTION(BlueprintCallable, Category = "Sentry") - FString GetEnvironment() const; - /** Sets fingerprint in the scope. */ UFUNCTION(BlueprintCallable, Category = "Sentry") void SetFingerprint(const TArray& Fingerprint); diff --git a/plugin-dev/Source/Sentry/Public/SentrySettings.h b/plugin-dev/Source/Sentry/Public/SentrySettings.h index 9cf78e4a..9f5596e0 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySettings.h +++ b/plugin-dev/Source/Sentry/Public/SentrySettings.h @@ -201,6 +201,10 @@ class SENTRY_API USentrySettings : public UObject Meta = (DisplayName = "Environment", ToolTip = "Environment which will be used for enriching events.")) FString Environment; + UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General", + Meta = (DisplayName = "Distribution", ToolTip = "Distribution which will be used for enriching events.")) + FString Dist; + UPROPERTY(Config, EditAnywhere, Category = "General", Meta = (DisplayName = "Sample rate", ToolTip = "Configures the sample rate for error events in the range of 0.0 to 1.0. The default is 1.0 which means that 100% of error events are sent. If set to 0.1 only 10% of error events will be sent. Events are picked randomly.", ClampMin = 0.0f, ClampMax = 1.0f)) float SampleRate; diff --git a/sample/Content/UI/W_SentryDemo.uasset b/sample/Content/UI/W_SentryDemo.uasset index 1bcf3705fb21e02ae72e9dfb6db75ba78d507814..88d4bc963cee016461da7b2b151a47cf4ca8ffe0 100644 GIT binary patch literal 354183 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 Xufl<=^w`!o#B2hGx`cbiv`PLyi28Gr literal 361240 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 W$j% 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 X4F}HBV_n~bqct3=9A;1Hyz2h|TdlnA From 5eee7565c4a01b728a78b5f25717520c63a30042 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 28 May 2025 16:40:33 +0300 Subject: [PATCH 12/20] Update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06bfad3a..15d09350 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Breaking Changes + +- `Environment` and `Dist` get/set functions were removed from the `Scope` class and now these properties have to be set in plugin settings instead. + ### Features - Add native local scope for Windows/Linux ([#928](https://github.com/getsentry/sentry-unreal/pull/928)) From 556c3b4e2a13bf2daa1c29fdd1d18885e5211583 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Thu, 29 May 2025 10:23:09 +0300 Subject: [PATCH 13/20] Remove ConfigureScope function --- .../Android/AndroidSentrySubsystem.cpp | 7 ------- .../Private/Android/AndroidSentrySubsystem.h | 1 - .../Android/Java/SentryBridgeJava.java | 9 -------- .../Private/Apple/AppleSentrySubsystem.cpp | 7 ------- .../Private/Apple/AppleSentrySubsystem.h | 1 - .../GenericPlatformSentrySubsystem.cpp | 5 ----- .../GenericPlatformSentrySubsystem.h | 1 - .../Interface/SentrySubsystemInterface.h | 1 - .../Source/Sentry/Private/SentrySubsystem.cpp | 21 ------------------- .../Source/Sentry/Public/SentrySubsystem.h | 12 ----------- 10 files changed, 65 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp index ebbf5ba8..b2a8f136 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.cpp @@ -196,13 +196,6 @@ void FAndroidSentrySubsystem::RemoveUser() FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::Sentry, "setUser", "(Lio/sentry/protocol/User;)V", nullptr); } -void FAndroidSentrySubsystem::ConfigureScope(const FSentryScopeDelegate& onConfigureScope) -{ - int64 scopeCallbackId = AndroidSentryScopeCallback::SaveDelegate(onConfigureScope); - - FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "configureScope", "(J)V", scopeCallbackId); -} - void FAndroidSentrySubsystem::SetContext(const FString& key, const TMap& values) { FSentryJavaObjectWrapper::CallStaticMethod(SentryJavaClasses::SentryBridgeJava, "setContext", "(Ljava/lang/String;Ljava/util/HashMap;)V", diff --git a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h index b0b7d056..b8303c8b 100644 --- a/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Android/AndroidSentrySubsystem.h @@ -22,7 +22,6 @@ class FAndroidSentrySubsystem : public ISentrySubsystem virtual void CaptureUserFeedback(TSharedPtr userFeedback) override; virtual void SetUser(TSharedPtr user) override; virtual void RemoveUser() override; - virtual void ConfigureScope(const FSentryScopeDelegate& onConfigureScope) override; virtual void SetContext(const FString& key, const TMap& values) override; virtual void SetTag(const FString& key, const FString& value) override; virtual void RemoveTag(const FString& key) override; diff --git a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java index 43c1e062..93b07955 100644 --- a/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java +++ b/plugin-dev/Source/Sentry/Private/Android/Java/SentryBridgeJava.java @@ -147,15 +147,6 @@ public static SentryId captureException(final String type, final String value) { return eventId; } - public static void configureScope(final long callback) { - Sentry.configureScope(new ScopeCallback() { - @Override - public void run(@NonNull IScope scope) { - onConfigureScope(callback, scope); - } - }); - } - public static void setContext(final String key, final HashMap values) { Sentry.configureScope(new ScopeCallback() { @Override diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp index 744e8e26..0bd0eb03 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.cpp @@ -289,13 +289,6 @@ void FAppleSentrySubsystem::RemoveUser() [SentrySDK setUser:nil]; } -void FAppleSentrySubsystem::ConfigureScope(const FSentryScopeDelegate& onConfigureScope) -{ - [SentrySDK configureScope:^(SentryScope* scope) { - onConfigureScope.ExecuteIfBound(MakeShareable(new FAppleSentryScope(scope))); - }]; -} - void FAppleSentrySubsystem::SetContext(const FString& key, const TMap& values) { [SentrySDK configureScope:^(SentryScope* scope) { diff --git a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h index 0ff416c0..4e823e42 100644 --- a/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/Apple/AppleSentrySubsystem.h @@ -22,7 +22,6 @@ class FAppleSentrySubsystem : public ISentrySubsystem virtual void CaptureUserFeedback(TSharedPtr userFeedback) override; virtual void SetUser(TSharedPtr user) override; virtual void RemoveUser() override; - virtual void ConfigureScope(const FSentryScopeDelegate& onConfigureScope) override; virtual void SetContext(const FString& key, const TMap& values) override; virtual void SetTag(const FString& key, const FString& value) override; virtual void RemoveTag(const FString& key) override; diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index e0923813..638752db 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -496,11 +496,6 @@ void FGenericPlatformSentrySubsystem::RemoveUser() } } -void FGenericPlatformSentrySubsystem::ConfigureScope(const FSentryScopeDelegate& onConfigureScope) -{ - // Not implemented in sentry-native -} - void FGenericPlatformSentrySubsystem::SetContext(const FString& key, const TMap& values) { sentry_set_context(TCHAR_TO_UTF8(*key), FGenericPlatformSentryConverters::StringMapToNative(values)); diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h index e8dc52e7..768bb024 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.h @@ -33,7 +33,6 @@ class FGenericPlatformSentrySubsystem : public ISentrySubsystem virtual void CaptureUserFeedback(TSharedPtr userFeedback) override; virtual void SetUser(TSharedPtr user) override; virtual void RemoveUser() override; - virtual void ConfigureScope(const FSentryScopeDelegate& onConfigureScope) override; virtual void SetContext(const FString& key, const TMap& values) override; virtual void SetTag(const FString& key, const FString& value) override; virtual void RemoveTag(const FString& key) override; diff --git a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h index 9d8f27e5..9867dba6 100644 --- a/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h +++ b/plugin-dev/Source/Sentry/Private/Interface/SentrySubsystemInterface.h @@ -42,7 +42,6 @@ class ISentrySubsystem virtual void CaptureUserFeedback(TSharedPtr userFeedback) = 0; virtual void SetUser(TSharedPtr user) = 0; virtual void RemoveUser() = 0; - virtual void ConfigureScope(const FSentryScopeDelegate& onConfigureScope) = 0; virtual void SetContext(const FString& key, const TMap& values) = 0; virtual void SetTag(const FString& key, const FString& value) = 0; virtual void RemoveTag(const FString& key) = 0; diff --git a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp index 304071ae..4644c340 100644 --- a/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/SentrySubsystem.cpp @@ -375,27 +375,6 @@ void USentrySubsystem::RemoveUser() SubsystemNativeImpl->RemoveUser(); } -void USentrySubsystem::ConfigureScope(const FConfigureScopeDelegate& OnConfigureScope) -{ - ConfigureScope(FConfigureScopeNativeDelegate::CreateUFunction(const_cast(OnConfigureScope.GetUObject()), OnConfigureScope.GetFunctionName())); -} - -void USentrySubsystem::ConfigureScope(const FConfigureScopeNativeDelegate& OnConfigureScope) -{ - check(SubsystemNativeImpl); - - if (!SubsystemNativeImpl || !SubsystemNativeImpl->IsEnabled()) - { - return; - } - - SubsystemNativeImpl->ConfigureScope(FSentryScopeDelegate::CreateLambda([OnConfigureScope](TSharedPtr NativeScope) - { - USentryScope* UnrealScope = USentryScope::Create(NativeScope); - OnConfigureScope.ExecuteIfBound(UnrealScope); - })); -} - void USentrySubsystem::SetContext(const FString& Key, const TMap& Values) { check(SubsystemNativeImpl); diff --git a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h index ac6bee08..8ae5d06d 100644 --- a/plugin-dev/Source/Sentry/Public/SentrySubsystem.h +++ b/plugin-dev/Source/Sentry/Public/SentrySubsystem.h @@ -182,18 +182,6 @@ class SENTRY_API USentrySubsystem : public UEngineSubsystem UFUNCTION(BlueprintCallable, Category = "Sentry") void RemoveUser(); - /** - * Configures the scope through the callback. - * Sentry SDK uses the Scope to attach contextual data to events. - * - * @param OnConfigureScope The callback to configure the scope. - * - * @note: Not supported for Windows/Linux. - */ - UFUNCTION(BlueprintCallable, Category = "Sentry", meta = (AutoCreateRefTerm = "OnCofigureScope")) - void ConfigureScope(const FConfigureScopeDelegate& OnConfigureScope); - void ConfigureScope(const FConfigureScopeNativeDelegate& OnConfigureScope); - /** * Sets context values which will be used for enriching events. * From 7f9c65e63dbb5f35b5e31efb0d21690dc8347b18 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Thu, 29 May 2025 10:25:10 +0300 Subject: [PATCH 14/20] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15d09350..425aa007 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Breaking Changes - `Environment` and `Dist` get/set functions were removed from the `Scope` class and now these properties have to be set in plugin settings instead. +- `ConfigureScope` function was removed from `SentrySubsystem` class. ### Features From b418ebd586120a597c8606d354e7da83b2af4982 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Thu, 29 May 2025 15:53:52 +0300 Subject: [PATCH 15/20] Remove redundant array size checks --- .../GenericPlatformSentryScope.cpp | 31 ++++++------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp index 7ff59077..4249c222 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentryScope.cpp @@ -153,13 +153,11 @@ void FGenericPlatformSentryScope::Clear() void FGenericPlatformSentryScope::Apply(sentry_scope_t* scope) { - if (!Breadcrumbs.IsEmpty()) + + for (const auto& Breadcrumb : Breadcrumbs) { - for (const auto& Breadcrumb : Breadcrumbs) - { - sentry_value_t nativeBreadcrumb = Breadcrumb->GetNativeObject(); - sentry_scope_add_breadcrumb(scope, nativeBreadcrumb); - } + sentry_value_t nativeBreadcrumb = Breadcrumb->GetNativeObject(); + sentry_scope_add_breadcrumb(scope, nativeBreadcrumb); } if (Fingerprint.Num() > 0) @@ -167,28 +165,19 @@ void FGenericPlatformSentryScope::Apply(sentry_scope_t* scope) sentry_scope_set_fingerprints(scope, FGenericPlatformSentryConverters::StringArrayToNative(Fingerprint)); } - if (Tags.Num() > 0) + for (const auto& TagItem : Tags) { - for (const auto& TagItem : Tags) - { - sentry_scope_set_tag(scope, TCHAR_TO_UTF8(*TagItem.Key), TCHAR_TO_UTF8(*TagItem.Value)); - } + sentry_scope_set_tag(scope, TCHAR_TO_UTF8(*TagItem.Key), TCHAR_TO_UTF8(*TagItem.Value)); } - if (Extra.Num() > 0) + for (const auto& ExtraItem : Extra) { - for (const auto& ExtraItem : Extra) - { - sentry_scope_set_extra(scope, TCHAR_TO_UTF8(*ExtraItem.Key), sentry_value_new_string(TCHAR_TO_UTF8(*ExtraItem.Value))); - } + sentry_scope_set_extra(scope, TCHAR_TO_UTF8(*ExtraItem.Key), sentry_value_new_string(TCHAR_TO_UTF8(*ExtraItem.Value))); } - if (Contexts.Num() > 0) + for (const auto& ContextsItem : Contexts) { - for (const auto& ContextsItem : Contexts) - { - sentry_scope_set_context(scope, TCHAR_TO_UTF8(*ContextsItem.Key), FGenericPlatformSentryConverters::StringMapToNative(ContextsItem.Value)); - } + sentry_scope_set_context(scope, TCHAR_TO_UTF8(*ContextsItem.Key), FGenericPlatformSentryConverters::StringMapToNative(ContextsItem.Value)); } sentry_scope_set_level(scope, FGenericPlatformSentryConverters::SentryLevelToNative(Level)); From e79bd8444f73db6c773b4bf8419adf5665afabac Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Fri, 30 May 2025 11:31:37 +0300 Subject: [PATCH 16/20] Free memory after capturing event with local scope --- .../GenericPlatform/GenericPlatformSentrySubsystem.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index 638752db..ba7b6e92 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -409,6 +409,9 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureMessageWithScope(c NewLocalScope->Apply(scope); sentry_uuid_t id = sentry_capture_event_with_scope(nativeEvent, scope); + + sentry_scope_free(scope); + return MakeShareable(new FGenericPlatformSentryId(id)); } @@ -445,6 +448,9 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureEventWithScope(TSh NewLocalScope->Apply(scope); sentry_uuid_t id = sentry_capture_event_with_scope(nativeEvent, scope); + + sentry_scope_free(scope); + return MakeShareable(new FGenericPlatformSentryId(id)); } From 15fc4822750f3f9876d86298c0aa141c7525515e Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 4 Jun 2025 16:25:05 +0300 Subject: [PATCH 17/20] Bump submodule --- modules/sentry-native | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sentry-native b/modules/sentry-native index 22cc4817..7c80f6f3 160000 --- a/modules/sentry-native +++ b/modules/sentry-native @@ -1 +1 @@ -Subproject commit 22cc4817ffdd4befc47e728f8932a06fb256d981 +Subproject commit 7c80f6f332094ccd15a7b966113bceae8f1ca4b1 From 946a510ffc4614d7bbb446c99a33b4c8ceb611a1 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 4 Jun 2025 17:55:46 +0300 Subject: [PATCH 18/20] Remove sentry_scope_free calls as this API was deleted in native --- .../GenericPlatform/GenericPlatformSentrySubsystem.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp index ba7b6e92..90f0beb5 100644 --- a/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp +++ b/plugin-dev/Source/Sentry/Private/GenericPlatform/GenericPlatformSentrySubsystem.cpp @@ -410,8 +410,6 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureMessageWithScope(c sentry_uuid_t id = sentry_capture_event_with_scope(nativeEvent, scope); - sentry_scope_free(scope); - return MakeShareable(new FGenericPlatformSentryId(id)); } @@ -449,8 +447,6 @@ TSharedPtr FGenericPlatformSentrySubsystem::CaptureEventWithScope(TSh sentry_uuid_t id = sentry_capture_event_with_scope(nativeEvent, scope); - sentry_scope_free(scope); - return MakeShareable(new FGenericPlatformSentryId(id)); } From ddf3a0975e2e1b9b686100d9c1677a0a9538d910 Mon Sep 17 00:00:00 2001 From: Ivan Tustanivskyi Date: Wed, 4 Jun 2025 17:57:13 +0300 Subject: [PATCH 19/20] Fix blueprint errors --- sample/Content/UI/W_SentryDemo.uasset | Bin 413207 -> 405388 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sample/Content/UI/W_SentryDemo.uasset b/sample/Content/UI/W_SentryDemo.uasset index 2cef48ab3dcd09d84c88968ec3124a43939ebb5e..163e7eb6286884579ab4539b341bbf81c4bc690e 100644 GIT binary patch literal 405388 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

lh)cLVMBLL_pBX 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 Date: Fri, 6 Jun 2025 11:34:11 +0300 Subject: [PATCH 20/20] Update CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da1304a9..e59d0f84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,8 @@ ### Breaking Changes -- `Environment` and `Dist` get/set functions were removed from the `Scope` class and now these properties have to be set in plugin settings instead. -- `ConfigureScope` function was removed from `SentrySubsystem` class. +- `Environment` and `Dist` get/set functions were removed from the `Scope` class and now these properties have to be set in plugin settings instead. This unifies their usage across all platforms supported by the Unreal SDK. +- `ConfigureScope` function was removed from `SentrySubsystem` class following the [Hub & Scope refactoring guidelines](https://develop.sentry.dev/sdk/miscellaneous/hub_and_scope_refactoring/) which recommend deprecating this API. ### Features