From cd2b563e243e1f5809ba0a8e984ac98fce2e7a9b Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 25 Apr 2025 14:07:57 +0200 Subject: [PATCH 1/5] added native and trace connection section --- .../img/trace-preview.png | Bin 0 -> 36122 bytes .../usage/automatic-error-capture/index.mdx | 26 ++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 docs/platforms/unity/usage/automatic-error-capture/img/trace-preview.png diff --git a/docs/platforms/unity/usage/automatic-error-capture/img/trace-preview.png b/docs/platforms/unity/usage/automatic-error-capture/img/trace-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..c7010e33d9c2be92a3ea58d28b82a3637b2a5fa0 GIT binary patch literal 36122 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, or programmatically, by setting the `CaptureLogErrorEvents` option to `false` in the [configure callback](/platforms/unity/configuration/options/programmatic-configuration). -### Stack Trace Support & Line Numbers +#### Stack Trace Support & Line Numbers If [configured](https://docs.unity3d.com/6000.0/Documentation/Manual/stack-trace.html), Unity will include the stack traces with the log messages as raw strings. The SDK is able to parse and display this stack trace in the issue details page. @@ -24,6 +24,22 @@ If you're using Unity 6 or newer, you have the option to to enable the source co Known Limitation: In versions older than Unity 6, the SDK is unable to provide line numbers for events captured through `Debug.LogError`. The SDK has only the strigified stack trace provided by Unity to work with and since there is no native exception available at the time of logging, Sentry can't symbolicate the stack trace on the server side either. -## UnityApplicationLoggingIntegration +### UnityApplicationLoggingIntegration The SDK uses the `UnityApplicationLoggingIntegration` to add its own log handler right before Unity's logging system. It then passes the logs back to Unity. This allows the SDK to capture errors through the `Application.logMessageReceived` method. All handled exceptions - such as those captured via `Log.LogException` calls - and unhandled exceptions end up on that call and are captured by the SDK. These messages contain the actual exception object. This allows the SDK to call into the IL2CPP backend and connect this managed exception to the native exception, allowing for server side symbolication. You can read more about the IL2CPP error integration works [here](/platforms/unity/configuration/il2cpp). + +## Automatic Error Capture on the Native Layer + +The Unity SDK also supports automatic error capture on the native layer. This is enabled by default and works through the respective native SDKs for each platform. + +For more information on how to configure the native SDK, see the [Native SDK documentation](/platforms/unity/native-support/). + +## Connecting Errors captured on different layers + +The Sentry SDKs already have the ability to connect events in a distributed system through the use of a trace. You can read more about how this works in the [Tracing documentation](/platforms/unity/usage/tracing/). + +The Unity SDK adds trace context (including a trace ID) to errors and shares this information with underlying native SDKs. This allows Sentry to automatically connect related events between different layers when errors occur. + +On the issues details page, you will see this as errors being connected within the Trace Preview. + +![Trace Preview](./img/trace-preview.png) From feae15702a25ccaaa9dddc6e4da19e8d5ade952b Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 25 Apr 2025 14:17:15 +0200 Subject: [PATCH 2/5] added explainer when trace IDs get regenerated --- docs/platforms/unity/usage/automatic-error-capture/index.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/platforms/unity/usage/automatic-error-capture/index.mdx b/docs/platforms/unity/usage/automatic-error-capture/index.mdx index 90a505bcbfd8d..a2c55a3eaf721 100644 --- a/docs/platforms/unity/usage/automatic-error-capture/index.mdx +++ b/docs/platforms/unity/usage/automatic-error-capture/index.mdx @@ -40,6 +40,8 @@ The Sentry SDKs already have the ability to connect events in a distributed syst The Unity SDK adds trace context (including a trace ID) to errors and shares this information with underlying native SDKs. This allows Sentry to automatically connect related events between different layers when errors occur. -On the issues details page, you will see this as errors being connected within the Trace Preview. +On the issues details page, you will see this as errors being connected within the Trace Preview. The example below shows a C# error being connected to an exception in Kotlin and a crash in C. ![Trace Preview](./img/trace-preview.png) + +The Sentry SDK regenerates the trace ID whenever the game gains focus or the active scene changes. This creates smaller, more focused trace groups rather than one continuous trace from startup to shutdown, helping you identify truly related errors. From bcac92dcb2a1753bf7ce5b49869e0363ec8249cc Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 25 Apr 2025 14:18:37 +0200 Subject: [PATCH 3/5] title --- docs/platforms/unity/usage/automatic-error-capture/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/unity/usage/automatic-error-capture/index.mdx b/docs/platforms/unity/usage/automatic-error-capture/index.mdx index a2c55a3eaf721..4a19432f9b99c 100644 --- a/docs/platforms/unity/usage/automatic-error-capture/index.mdx +++ b/docs/platforms/unity/usage/automatic-error-capture/index.mdx @@ -34,7 +34,7 @@ The Unity SDK also supports automatic error capture on the native layer. This is For more information on how to configure the native SDK, see the [Native SDK documentation](/platforms/unity/native-support/). -## Connecting Errors captured on different layers +## Connecting Errors Captured on Different Layers The Sentry SDKs already have the ability to connect events in a distributed system through the use of a trace. You can read more about how this works in the [Tracing documentation](/platforms/unity/usage/tracing/). From 86406c15ed9f5d77b868a4c74af36349124c273d Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 25 Apr 2025 15:39:43 +0200 Subject: [PATCH 4/5] specified the platform --- docs/platforms/unity/usage/automatic-error-capture/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/unity/usage/automatic-error-capture/index.mdx b/docs/platforms/unity/usage/automatic-error-capture/index.mdx index 4a19432f9b99c..95028ce9c78db 100644 --- a/docs/platforms/unity/usage/automatic-error-capture/index.mdx +++ b/docs/platforms/unity/usage/automatic-error-capture/index.mdx @@ -40,7 +40,7 @@ The Sentry SDKs already have the ability to connect events in a distributed syst The Unity SDK adds trace context (including a trace ID) to errors and shares this information with underlying native SDKs. This allows Sentry to automatically connect related events between different layers when errors occur. -On the issues details page, you will see this as errors being connected within the Trace Preview. The example below shows a C# error being connected to an exception in Kotlin and a crash in C. +On the issues details page, you will see this as errors being connected within the Trace Preview. The example below is taken from an game running on Android and shows a C# error being connected to an exception in Kotlin and a crash in C. ![Trace Preview](./img/trace-preview.png) From 21347d2e94886c25e946573c4cb67d8d9572d445 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Fri, 25 Apr 2025 15:57:32 +0200 Subject: [PATCH 5/5] fixed 404 --- docs/platforms/unity/usage/automatic-error-capture/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/unity/usage/automatic-error-capture/index.mdx b/docs/platforms/unity/usage/automatic-error-capture/index.mdx index 95028ce9c78db..a5ee3ac0d757d 100644 --- a/docs/platforms/unity/usage/automatic-error-capture/index.mdx +++ b/docs/platforms/unity/usage/automatic-error-capture/index.mdx @@ -36,7 +36,7 @@ For more information on how to configure the native SDK, see the [Native SDK doc ## Connecting Errors Captured on Different Layers -The Sentry SDKs already have the ability to connect events in a distributed system through the use of a trace. You can read more about how this works in the [Tracing documentation](/platforms/unity/usage/tracing/). +The Sentry SDKs already have the ability to connect events in a distributed system through the use of a trace. You can read more about how this works in the [Tracing documentation](/platforms/unity/tracing/). The Unity SDK adds trace context (including a trace ID) to errors and shares this information with underlying native SDKs. This allows Sentry to automatically connect related events between different layers when errors occur.