Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
288badc
.NET 3.5 backward compatibility (#93)
konraddysput Jul 15, 2021
65eb5e3
client side unwinding (#95)
konraddysput Jul 15, 2021
ccf9484
Update CHANGELOG.md
Jul 16, 2021
723b294
Update README.md
Jul 16, 2021
53b2b1e
Expose unwinding in the Backtrace UI
konraddysput Jul 19, 2021
77d459a
native client updates - ignore anrs on the debug mode, don't generate…
konraddysput Jul 19, 2021
7e10fc5
3.6.0-preview.0
konraddysput Jul 19, 2021
20b06c5
Added client side unwinding details.
Jul 20, 2021
9a8c117
Update CHANGELOG.md
Jul 20, 2021
5e718df
Add files via upload
Jul 20, 2021
fb2413d
Delete Backtrace Panel Native Crashes.png
Jul 20, 2021
f2775ca
Add files via upload
Jul 20, 2021
e7e41ac
Update README.md
Jul 20, 2021
15ca1d3
Add files via upload
Jul 26, 2021
fdaa0d0
Update README.md
Jul 26, 2021
0eed098
Windows native support (#97)
konraddysput Aug 4, 2021
205739c
Source Code integration (#98)
konraddysput Aug 4, 2021
dbc97da
Version bump
konraddysput Aug 5, 2021
5b84da5
Preview 3: Fixes compilation issues on platforms without native client
konraddysput Aug 16, 2021
d3d4400
Preview 3: version bump
konraddysput Aug 16, 2021
04f0b43
Remove class instance on OnDestroy method and move disabing native in…
konraddysput Aug 23, 2021
da7c60a
Enable by default metrics support
konraddysput Aug 27, 2021
614251f
event agg documentation clarification (#99)
Dautery91 Aug 27, 2021
720a29f
Enable client side unwinding + CSU switch
konraddysput Aug 27, 2021
b2777f9
Enable client side unwinding flag available outside Android env
konraddysput Aug 27, 2021
e80f327
Adjusted .meta files
konraddysput Aug 27, 2021
b40638b
Adjusted win libraries
konraddysput Aug 27, 2021
f923a94
Client side unwinding only for unity 2019
konraddysput Aug 28, 2021
6ddaa06
Version bump
konraddysput Aug 28, 2021
9492d24
Update README.md
Sep 3, 2021
3f713bf
Merge branch 'master' into release
konraddysput Sep 15, 2021
a4b30a1
Update README.md
konraddysput Sep 15, 2021
49eca27
Merge pull request #105 from backtrace-labs/jasoncdavis0-patch-1
Sep 15, 2021
6d68a99
Client side unwinding improvements (#107)
konraddysput Sep 15, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified Android/lib/arm64-v8a/libbacktrace-native.so
Binary file not shown.
Binary file modified Android/lib/arm64-v8a/libnative-lib.so
Binary file not shown.
Binary file modified Android/lib/armeabi-v7a/libbacktrace-native.so
Binary file not shown.
Binary file modified Android/lib/armeabi-v7a/libnative-lib.so
Binary file not shown.
Binary file modified Android/lib/x86/libbacktrace-native.so
Binary file not shown.
Binary file modified Android/lib/x86/libnative-lib.so
Binary file not shown.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Backtrace Unity Release Notes

## Version 3.6.1

Bugfixes

- Fixed unhandled exception caused by truncated stack trace

Improvements

- improved client side unwinding support on Android

## Version 3.6.0

New functionality
Expand Down
31 changes: 16 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ catch(Exception exception)
# Platforms Supported

Backtrace-unity has been tested and certified for games deployed on the following platforms:

- Mobile - Android, iOS
- PC - Windows, Mac
- Web - WebGL
Expand All @@ -78,7 +79,7 @@ Backtrace-unity has been tested and certified for games deployed on the followin
There are some differences in capabilities that backtrace-unity provides based on the platform. Major capabilities are summarized as follows:

- All Platforms - Errors, Unhandled Exceptions, Handled Exceptions, Custom Indexable Metadata, File Attachments*, Breadcrumbs, Automatic attachment of Screenshots, Client Side Deduplication Rules*, Client Side Submission Filtering, Client Side Submission Limits, Crash Free Metrics (except WebGL), Performance Diagnostics, Offline Database\*(Except Nintendo Switch)
- Android -Identified by attribute `uname.sysname` = Android; ANRs (Hangs), Native Process and Memory Information, Java Exception Handler (Plugins, Exported Game in Android Studio), NDK crashes, low memory warnings. Client-side unwinding option for NDK 19+ (Unity 2019+).
- Android -Identified by attribute `uname.sysname` = Android; ANRs (Hangs), Native Process and Memory Information, Java Exception Handler (Plugins, Exported Game in Android Studio), NDK crashes, low memory warnings. Client-side unwinding option for NDK 19+ (Unity 2019+).
- iOS - Identified by attribute `uname.sysname` = IOS; ANRs (Hangs), Native Engine, Memory and Plugin Crashes.
- WebGL - Identified by attribute `uname.sysname` = WebGL. The attribute `device.model` is currently used to share the browser information. Note that stacktraces for WebGL errors are only available if you choose to enable them in the Publishing Settings / Enable Exceptions drop down. More details [here](https://docs.unity3d.com/Manual/webgl-building.html).
- Switch - Identified by attribute `uname.sysname` = Switch. Note that the attribute GUID is regenerated with each Switch restart (It is not an accurate count of number of Users or Devices. It is a count of Switch Sessions). Note that the current release does no support Offline Database or related features.
Expand Down Expand Up @@ -132,8 +133,7 @@ One of the integration paths require to create game object in your game scene. I
attributes: attributes);
```

If you need to use more advanced configuration, `Initialize` method accepts a `BacktraceConfiguration` scriptable object. See below:

If you need to use more advanced configuration, `Initialize` method accepts a `BacktraceConfiguration` scriptable object. See below:

```csharp
var configuration = ScriptableObject.CreateInstance<BacktraceConfiguration>();
Expand Down Expand Up @@ -182,14 +182,15 @@ The following is a reference guide to the Backtrace Client fields:
- Handle unhandled exceptions: Toggle this on or off to set the library to handle unhandled exceptions that are not captured by try-catch blocks.
- Symbols upload token - If you want to upload Unity debug symbols for Android NDK Native Crash debugging, enter your Backtrace Symbol upload token here. This option is available only in Android build.
- Log random sampling rate - Enables a random sampling mechanism for DebugLog.error messages - **by default** sampling is equal to **0.01** - which means only **1%** of randomply sampling **reports will be send** to Backtrace. If you would like to send all DebugLog.error messages to Backtrace - please replace 0.01 value with 1.
- Game Object Depth Limit: Allows developer to filter number of game object childrens in Backtrace report.
- REMOVED: Collect last n game logs: Collect last n number of logs generated by game. This is not part of Breadcrumbs
- Enabled performance statistics: Allows `BacktraceClient` to measure execution time and include performance information as report attributes.
- Ignore SSL validation: Unity by default will validate ssl certificates. By using this option you can avoid ssl certificates validation. However, if you don't need to ignore ssl validation, please set this option to false.
- Game Object Depth Limit: Allows developer to filter number of game object childrens in Backtrace report.
- REMOVED: Collect last n game logs: Collect last n number of logs generated by game. This is not part of Breadcrumbs
- Enabled performance statistics: Allows `BacktraceClient` to measure execution time and include performance information as report attributes.
- Ignore SSL validation: Unity by default will validate ssl certificates. By using this option you can avoid ssl certificates validation. However, if you don't need to ignore ssl validation, please set this option to false.

- Crash Free Metrics Reporting
- Enable crash free metrics reporting. This toggles the periodic transmission of session information to the Backtrace endpoints. This will enable metrics such as crash free users and crash free sessions. Metric events by default are sent when the game starts, when the game is closed / ends, and every 30 minutes while the game is running. So even if a user starts up the game and quits after only a couple of minutes, session and user metrics will still be sent. See the "Crash Free Metrics" section below for more information on this feature.
- Enable crash free metrics reporting. This toggles the periodic transmission of session information to the Backtrace endpoints. This will enable metrics such as crash free users and crash free sessions. Metric events by default are sent when the game starts, when the game is closed / ends, and every 30 minutes while the game is running. So even if a user starts up the game and quits after only a couple of minutes, session and user metrics will still be sent. See the "Crash Free Metrics" section below for more information on this feature.
- Attachments Paths

- Paths to attachments to be included for all report types.

- Backtrace Database Configuration
Expand All @@ -205,8 +206,8 @@ The following is a reference guide to the Backtrace Client fields:
- Native crashes
- Capture native crashes: This option will appear for games being deployed to Android or iOS and will allow Backtrace to capture and symbolicate native stack traces from crashes impacting the Unity Engine or any Unity Plugin.
- Capture ANR (Application not responding): This option will appear for Android or iOS and allow Backtrace to capture Hang reports. If enabled, a report will be generated if an application is not respinsive for more than 5 seconds.
- Send Out of memory exceptions to Backtrace: This option will appear for Android or iOS and allow Backtrace to follow the behavior defined in the [Android](#android-specific-information) or [iOS](#ios-specific-information) sections.
- Enable client-side unwinding: This option will appear for supported versions of Android (NDK 19; Unity 2019+), and allow Backtrace to perform client side unwinding of native crashes. Please see [Android Client-side unwinding](#client-side-unwinding) for details.
- Send Out of memory exceptions to Backtrace: This option will appear for Android or iOS and allow Backtrace to follow the behavior defined in the [Android](#android-specific-information) or [iOS](#ios-specific-information) sections.
- Enable client-side unwinding: This option will appear for supported versions of Android (NDK 19; Unity 2019+), and allow Backtrace to perform client side unwinding of native crashes. Please see [Android Client-side unwinding](#client-side-unwinding) for details.
- Minidump type: Type of minidump that will be attached to Backtrace report in the report generated on Windows machine.
- Attach Unity Player.log: Add Unity player log file to Backtrace report. NOTE: This feature is available only on desktop - Windows/MacOS/Linux.
- Attach screenshot: Generate and attach screenshot of frame as exception occurs.
Expand All @@ -227,7 +228,7 @@ The backtrace-unity library includes support for capturing Android NDK crashes a

## Client side unwinding

Client side unwinding may be useful if you are unable to upload all the symbols for your application. For example, if you are having stability issues in system or other opaque libraries on the devices where your game is deployed, it is better to unwind the callstack on the crashing application (i.e: the client). This may not provide the same callstack quality as with debugging symbols, but will give you debugging information you would otherwise not have if you don't have debugging symbols available.
Client side unwinding may be useful if you are unable to upload all the symbols for your application. For example, if you are having stability issues in system or other opaque libraries on the devices where your game is deployed, it is better to unwind the callstack on the crashing application (i.e: the client). This may not provide the same callstack quality as with debugging symbols, but will give you debugging information you would otherwise not have if you don't have debugging symbols available.

This function is enabled in backtrace-unity via the a toggle under `Native Crashes` in Backtrace UI Panel in Unity (see below) or via the BacktraceConfiguration object and the `.ClientSideUnwinding = true;`. See an example in the [Integrating into your project via code](#integrating-into-your-project-via-code)

Expand Down Expand Up @@ -262,7 +263,7 @@ To generate `symbols.zip` archive make sure:

Backtrace offers to upload symbols automatically from Unity Editor to your Backtrace instance. Backtrace symbols upload pipeline will be triggered after successfull build of il2cpp Android game and when Symbols upload token is available in Backtrace Client options. After successfull build, upload pipeline will confirm symbols upload.

If you build outside the Unity Editor and need to manually upload symbols to Backtrace, you must rename symbols generated by Unity end simply with a `.so` extension. By default, symbol files within the .zip will end with extension `.sym.so`. or `.dbg.so` Backtrace will only match symbols to files based on the ending with `.so` extension. Please ensure all files have a single `.so` extention before uploading the zip.
If you build outside the Unity Editor and need to manually upload symbols to Backtrace, you must rename symbols generated by Unity end simply with a `.so` or a `.so.debug` extension. By default, symbol files within the .zip will end with extension `.sym.so`. or `.dbg.so` Backtrace will only match symbols to files based on the ending with `.so` or `.so.debug` extension. Please ensure all `.sym.so` files are renamed to have a single `.so` extention, and all `.dbg.so` files are renamed to have a single `.so.debug` extension before uploading the zip.

To learn more about how to submit those symbol files to Backtrace, please see the Project Settings / Symbols. You can manage submission tokens, upload via the UI, or configure external Symbol Servers to connect and discover required symbols. Please review additional documentation [here](https://support.backtrace.io/hc/en-us/articles/360040517071-Symbolication-Overview).

Expand Down Expand Up @@ -483,18 +484,18 @@ GetComponent<BacktraceClient>().Breadcrumbs.Info("Player Base Upgraded", new Dic

## Crash Free Metrics <a name="crash-free-metrics"></a>

Crash free metrics can be enabled with the toggle on the Backtrace Client Configuration.
Crash free metrics can be enabled with the toggle on the Backtrace Client Configuration.

![CrashFreeToggle](./Documentation~/images/CrashFreeMetricToggleBTUnity.png)

Once enabled, unique application launches and unique player identifiers (default: guid) will be submitted to Backtrace so you will be able to get an overview in our web console of how many errors, hangs, crashes and memory problems occur compared to all active users for a given platform, version, and more.
Once enabled, unique application launches and unique player identifiers (default: guid) will be submitted to Backtrace so you will be able to get an overview in our web console of how many errors, hangs, crashes and memory problems occur compared to all active users for a given platform, version, and more.

![image](https://user-images.githubusercontent.com/726645/120375869-7f560380-c2d8-11eb-80bf-b15ea90c0ad3.png)
![image](https://user-images.githubusercontent.com/726645/120376224-d8be3280-c2d8-11eb-88a9-5c16d49e263b.png)

Note! This functionality is supported on all Unity supported platforms **except WebGL**.

As mentioned above, these session events are sent on application startup, when the game is closed/ends, and every 30 minutes while the game is running.
As mentioned above, these session events are sent on application startup, when the game is closed/ends, and every 30 minutes while the game is running.

You can also enable this feature at runtime via BacktraceClient.EnableMetrics().

Expand Down
7 changes: 7 additions & 0 deletions README_ja_JP.md.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Runtime/BacktraceClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace Backtrace.Unity
/// </summary>
public class BacktraceClient : MonoBehaviour, IBacktraceClient
{
public const string VERSION = "3.6.0";
public const string VERSION = "3.6.1";

public BacktraceConfiguration Configuration;

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "io.backtrace.unity",
"displayName": "Backtrace",
"version": "3.6.0",
"version": "3.6.1",
"unity": "2017.1",
"description": "Backtrace's integration with Unity games allows customers to capture and report handled and unhandled Unity exceptions to their Backtrace instance, instantly offering the ability to prioritize and debug software errors.",
"keywords": [
Expand Down