diff --git a/CHANGELOG.md b/CHANGELOG.md index b1ce90078..a8557c9a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Features + +- Support local variables on Android ([#334](https://github.com/getsentry/sentry-godot/pull/334)) + ### Other changes - Use threads interface for error reporting with Native SDK ([#350](https://github.com/getsentry/sentry-godot/pull/350)) diff --git a/android_lib/src/main/java/io/sentry/godotplugin/SentryAndroidGodotPlugin.kt b/android_lib/src/main/java/io/sentry/godotplugin/SentryAndroidGodotPlugin.kt index eafb39709..841e3020c 100644 --- a/android_lib/src/main/java/io/sentry/godotplugin/SentryAndroidGodotPlugin.kt +++ b/android_lib/src/main/java/io/sentry/godotplugin/SentryAndroidGodotPlugin.kt @@ -442,6 +442,10 @@ class SentryAndroidGodotPlugin(godot: Godot) : GodotPlugin(godot) { preContext = (frameData["pre_context"] as? Array<*>)?.map { it as String } postContext = (frameData["post_context"] as? Array<*>)?.map { it as String } } + + if (frameData.containsKey("vars")) { + vars = frameData["vars"] as? Dictionary + } } exception.stacktrace?.frames?.add(frame) diff --git a/src/sentry/android/android_event.cpp b/src/sentry/android/android_event.cpp index bed06b36e..730e3950b 100644 --- a/src/sentry/android/android_event.cpp +++ b/src/sentry/android/android_event.cpp @@ -124,6 +124,15 @@ void AndroidEvent::add_exception(const Exception &p_exception) { data["pre_context"] = frame.pre_context; data["post_context"] = frame.post_context; } + + if (!frame.vars.is_empty()) { + Dictionary variables; + for (auto var : frame.vars) { + variables[var.first] = var.second; + } + data["vars"] = variables; + } + android_plugin->call(ANDROID_SN(exceptionAppendStackFrame), exception_handle, data); }