Skip to content

Releases: backtrace-labs/backtrace-unity

Version 3.1.1

17 Sep 12:52
1eea055
Compare
Choose a tag to compare

Version 3.1.1

  • Prevent erroneously extending backtraceClient attributes with backtraceReport attributes.
  • Removed randomly generated path to assembly from callstacks.
  • Prevent client from multi initialization.

Version 3.1.0

28 Aug 14:39
01d36d5
Compare
Choose a tag to compare

Version 3.1.0

This release adds an ability to capture native NDK crashes from Unity games deployed on Android. The Backtrace Configuration now exposes a setting for games being prepared for Android OS to choose Capture native crashes. When enabled, Backtrace will capture and symbolicate native stack traces from crashes impacting the Unity Engine or any Unity Engine Plugin.

When develoing for Andriod, Unity users who want to debug native NDK crash report can specify a Backtrace Symbols Server Token to support the optional uploading of debug symbols from Unity Editor to Backtrace during build. Uploaded symbols are needed to generate human readable stack trace with proper function names for identifying issues.

Backtrace library now allows to set client attributes, that will be included in every report. In addition to that, Backtrace client attributes will be available in the native crashes generated by Android games.

To setup client attributes you can simply type

BacktraceClient["name-of-attribute"] = "value-of-attribute";

If you already have dictionary of attributes you can use SetAttributes method.

Version 3.0.4

03 Aug 20:40
Compare
Choose a tag to compare

Preliminary Nintendo Switch support has been introduced. The offline database is not currently supported in this version, but will be included in an upcoming release.

Version 3.0.3

30 Jul 21:08
a71d542
Compare
Choose a tag to compare

Version 3.0.3

This release includes significant improvements to performance by way of report filtering as well as improved performance diagnostics. Learn more below.

  • BacktraceClient now supports report filtering. Report filtering is enabled by using the Filter reports option in the user interface or for more advanced use-cases, the SkipReport delegate is available in BacktraceClient.

Sample code:

  // Return true to ignore a report, return false to handle the report
  // and generate one for the error.
  BacktraceClient.SkipReport = (ReportFilterType type, Exception e, string msg) =>
  {
    // ReportFilterType is one of None, Message, Exception,
    // UnhandledException or Hang. It is also possible to
    // to filter based on the exception and exception message.

    // Report hangs and crashes only.
    return type != ReportFilterType.Hang && type != ReportFilterType.UnhandledException;
  };
  • Support for backtrace-unity timing observability. To enable sending performance information to Backtrace set theEnable performance statistics option in the UI. Attributes are created under the performance.* namespace, time unit is microseconds:
    • Report creation time (performance.report),
    • JSON serialization time (performance.json),
    • Database add operation time (performance.database),
    • Database single send method time (performance.send),
    • Database single flush method time (performance.flush)
  • Improvements to JIT stack frame parsing.

Version 3.0.2

24 Jul 18:26
67bf36e
Compare
Choose a tag to compare

Version 3.0.2

  • BacktraceDatabase now provides a new Send method. This method will try to send all objects from the database respecting the client side deduplication and retry setting. This can be used as an alternative to the Flush method which will try to send all objects from the database ignoring any client side deduplication and retry settings.
  • BacktraceClient has been optimized to only serialize data as needed.
  • BacktraceDatabase AutoSend function has been optimized for performance improvements.
  • BacktraceClient by default will generate configuration file with client rate limit equal to 50.
  • Fixed invalid meta file.

Version 3.0.1

09 Jul 17:49
Compare
Choose a tag to compare

Version 3.0.1

  • The BacktraceDatabase class will now create database directory before final database validation. Previously, when directory didn't exist, BacktraceDatabase was disabled.
  • The BacktraceDatabase field now allows users to pass interpolated string in Database options. Developer can use ${Application.dataPath} or ${Application.persistentDataPath} to set path to database.
  • The backtrace-unity library will generate screenshot image files in .jpg format.
  • Optimizations in ANR watchdog and BacktraceLogManager initialization - The Backtrace client will now create a class instance of BacktraceAnrWatchdog class, instead of creating instance via static class method. The BacktraceLogManager (class responsible for storing log data) will be initialized in CaptureUnityMessages.

Version 3.0.0

29 Jun 15:58
Compare
Choose a tag to compare

Version 3.0.0

New Features

  • The backtrace-unity library (Backtrace) now allows detection of ANR (Application not responding) events on Android devices.
  • Unhandled exception output from the Unity runtime and executables is now prominently displayed in the Debugger.
  • Backtrace will try to guess unhandled exception classifier based on exception message/stack trace.
  • Backtrace now allows you to add Unity player.log file as an attachment.
  • Backtrace now allows you to add a screenshot as an attachment when an exception occured.
  • Backtrace now allows you to capture last n lines of game logs. You can define how many lines of logs Backtrace should store by settings Collect last n number of logs property in the Unity editor.
  • Backtrace will capture any native Unity Engine crash dumps on Windows OS.
  • Backtrace will capture and index native metadata from the Android OS as Backtrace Attribuces, including vm, system.memory, and device details.
  • Backtrace allows you control whether or not a report should send via the BeforeSend event. If you return a null value from a BeforeSend event, Backtrace will discard the report and not send.

General Improvements

  • BacktraceClient, BacktraceReport, BacktraceData, BacktraceData and BacktraceDatabase now allow users to pass attributes in dictionary form with string key and string values. Attributes must now be provided with the Dictionary<string, string> data structure to allow the serializer to be as fast as possible.
  • Removed dependancy on 3rd party JSON.NET library to reduce the size of the package. Backtrace-unity now provides it's own serializer for BacktraceReport usage.
  • Further reduction in size of Backtrace.Unity assembly with BacktraceJObject.
  • BacktraceDatabase won't try to deserialize BacktraceReport anymore - because of that, callback api won't return BacktraceReport object in BacktraceResult.
  • BacktraceDatabase won't use anymore Add method with BacktraceReport parameter. Instead, BacktraceDaatabase will use Add method with BacktraceData parameter. Previous Add method is deprecated and will be removed in next major release.
  • Support has been improved for parsing unhandled exception output from the Unity runtime and Unity executables.

NOTE: When migrating from previous releases, there is an API change that developers will want to uptake for attribute submission. Specifically, attribute definitions previously used a signature
attributes: new Dictionary<string, object>() { { "key", "value" } },
In this release, we made a change to require a string for the value instead of an object for faster performance.
attributes: new Dictionary<string, string>() { { "key", "value" } },

Bug Fixes

  • Annotation name typo - updated children from childrens

3.0.0-release-candidate

16 Jun 16:53
Compare
Choose a tag to compare
Pre-release

Version 3.0.0

New Features

  • The backtrace-unity library (Backtrace) now allows detection of ANR (Application not responding) events on Android devices.
  • Unhandled exception output from the Unity runtime and executables is now prominently displayed in the Debugger.
  • Backtrace will try to guess unhandled exception classifier based on exception message/stack trace.
  • Backtrace now allows you to add Unity player.log file as an attachment.
  • Backtrace now allows you to add a screenshot as an attachment when an exception occured.
  • Backtrace will now allow you to capture last n lines of game logs. You can define how many lines of logs Backtrace should store by settings Collect last n number of logs property in the Unity editor.
  • Backtrace will send the native Unity exception that caused a crash of game on Windows OS.
  • Backtrace allows you control whether or not a report should send via the BeforeSend event. If you return a null value from a BeforeSend event, Backtrace will discard the report and not send.

General Improvements

  • BacktraceClient, BacktraceReport, BacktraceData, BacktraceData and BacktraceDatabase now allow users to pass attributes in dictionary form with string key and string values. Attributes must now be provided with the Dictionary<string, string> data structure to allow the serializer to be as fast as possible.
  • Removed dependancy on 3rd party JSON.NET library to reduce the size of the package. Backtrace-unity now provides it's own serializer for BacktraceReport usage.
  • Further reduction in size of Backtrace.Unity assembly with BacktraceJObject.
  • BacktraceDatabase won't try to deserialize BacktraceReport anymore - because of that, callback api won't return BacktraceReport object in BacktraceResult.
  • BacktraceDatabase won't use anymore Add method with BacktraceReport parameter. Instead, BacktraceDaatabase will use Add method with BacktraceData parameter. Previous Add method is deprecated and will be removed in next major release.
  • Support has been improved for parsing unhandled exception output from the Unity runtime and Unity executables.

NOTE: When migrating from previous releases, there is an API change that developers will want to uptake for attribute submission. Specifically, attribute definitions previously used a signature
attributes: new Dictionary<string, object>() { { "key", "value" } },
In this release, we made a change to require a string for the value instead of an object for faster performance.
attributes: new Dictionary<string, string>() { { "key", "value" } },

Bug Fixes

  • Annotation name typo - updated children from childrens

Version 2.1.6

04 Jun 16:29
Compare
Choose a tag to compare

Version 2.1.6

  • Handling special case for string reports fingerprint when stack trace is empty.

Version 2.1.5

03 Jun 19:20
Compare
Choose a tag to compare

Version 2.1.5

  • Backtrace Unity plugin UI improvements - added tooltips, headers and collapsible menu for advanced options.
  • Changed Client-side deduplication menu,
  • BacktraceClient now allows you to choose what type of fingerprint Backtrace should generate for reports without stack trace. Use normalized exception message allows you to use a normalized exception message to generate fingerprint, instead of stack trace.
  • Added exception source code information to exception and message type of reports.