Releases: backtrace-labs/backtrace-unity
Version 3.1.1
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
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
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
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 theFilter reports
option in the user interface or for more advanced use-cases, theSkipReport
delegate is available inBacktraceClient
.
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 the
Enable 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
)
- Report creation time (
- Improvements to JIT stack frame parsing.
Version 3.0.2
Version 3.0.2
BacktraceDatabase
now provides a newSend
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 theFlush
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
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 ofBacktraceAnrWatchdog
class, instead of creating instance via static class method. TheBacktraceLogManager
(class responsible for storing log data) will be initialized inCaptureUnityMessages
.
Version 3.0.0
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
andBacktraceDatabase
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 deserializeBacktraceReport
anymore - because of that, callback api won't returnBacktraceReport
object inBacktraceResult
.BacktraceDatabase
won't use anymoreAdd
method with BacktraceReport parameter. Instead,BacktraceDaatabase
will useAdd
method with BacktraceData parameter. PreviousAdd
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
fromchildrens
3.0.0-release-candidate
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
andBacktraceDatabase
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 deserializeBacktraceReport
anymore - because of that, callback api won't returnBacktraceReport
object inBacktraceResult
.BacktraceDatabase
won't use anymoreAdd
method with BacktraceReport parameter. Instead,BacktraceDaatabase
will useAdd
method with BacktraceData parameter. PreviousAdd
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
fromchildrens
Version 2.1.6
Version 2.1.6
- Handling special case for string reports fingerprint when stack trace is empty.
Version 2.1.5
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.