Skip to content

Commit 326d546

Browse files
authored
Report fingerprint (#20)
* Include source code to the exception/message reports * Menu changes * Deduplicaiton UI improvements + UI tooltips + UI headers + collapsible menu * Added Jason feedback * Normalized error message * Change log and readme update + library version update * changed tooltips * Docs update
1 parent e8c1839 commit 326d546

19 files changed

+498
-310
lines changed

CHANGELOG.md

Lines changed: 120 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,120 @@
1-
# Backtrace Unity Release Notes
2-
3-
## Version 2.1.5
4-
5-
- Added exception source code information to exception and message type of reports.
6-
7-
## Version 2.1.4
8-
9-
- `EnvironmentVariable` class now will handle correctly nullable key/values,
10-
- `BacktraceAttributes` handle correctly nullable values.
11-
12-
## Version 2.1.3
13-
14-
- `BacktraceUnhandledException` will generate environment stack trace if Unity stack trace is empty. BacktraceReport will still generate normalized fingerprint for unhandled exception without stack trace.
15-
- `BacktraceUnhandledException` will provide information from Unity Error logger in source code property, which should improve error analysis in web debugger.
16-
- `BacktraceAttributes` won't try to collect `Annotations` anymore.
17-
- `Annotations` won't use ComplexAttributes property anymore.
18-
19-
## Version 2.1.2
20-
21-
- `BacktraceReport` will generate report fingerprint for exceptions without stack trace.
22-
- Changed game object depth default property value.
23-
- Added Exception information to the Annotation object.
24-
25-
## Version 2.1.1
26-
27-
- UPM modifications - fixed editor assembly definition,
28-
- Hiding Documentation and Scripts folders
29-
- Added Mac and Rider files to .gitignore
30-
- Moved Backtrace Configuration create menu deeper into the hierarchy
31-
32-
## Version 2.1.0
33-
34-
- UPM support - changed project structure and divide Backtrae-unity plugin into assemblies.
35-
36-
## Version 2.0.5
37-
38-
- Unity compatibility patch - .NET2.0, .NET 3.5 support (https://github.com/backtrace-labs/backtrace-unity/pull/10).
39-
- Untiy .NET Standard 2.0 support.
40-
- Expose minidump type option to Backtrace Client configuration in the UI.
41-
- Changed values of LangVersion to Mono or IL2CPP, depending on which is deployed.
42-
- Changed `Game object depth` property - default to `-1`, which means not to include Game Objects Hierarchy as an Annotation in the error report. Set the value to `1` to collect one level deep of Gane Object hierarchy, `2` to collect two levels deep, and so on. Setting the value to `0` will collect the full depth, which may be rather large if you have a lot of children.
43-
44-
## Version 2.0.4
45-
46-
- Added Game object depth property that allows developer to filter game object childrens in Backtrace report
47-
- Changed "Destroy client on new scene load" label. Now: "Destroy client on new scene load (false - Backtrace managed),
48-
- added namespaces to `XmlNodeConverter` class,
49-
- Added correct path to source file in `BacktraceUnhnandledException`,
50-
- Changed line endings in `BacktraceDatabase`, `ReportLimitWatcher`, `BacktraceClient` files,
51-
- Changed `ReactTransform` casting to `Component` in `Annotations` class. With this change Backtrace library should correctly send all game objects to Backtrace,
52-
- Changed a way how we guess game assets directory.
53-
54-
## Version 2.0.3
55-
56-
- Annotations object will validate game object before converting it.
57-
58-
## Version 2.0.2
59-
60-
- Fixed invalid cast for nested game objects in Backtrace Attributes,
61-
- BacktraceClient will print message only once per report rate limit hit per 1 minute.
62-
- `BacktraceDatabase` `Send` method will check client rate limit after each send.
63-
- `BacktraceClient` and `BacktraceDatabase` won't generate warning on `Disabled` event.
64-
65-
## Version 2.0.1
66-
67-
- `BacktraceApi` won't print anymore Error message when Backtrace-integration cannot send data to Backtrace. Now `BacktraceApi` will print warning instead.
68-
69-
## Version 2.0.0
70-
71-
- Backtrace-Unity plugin will set `"Destroy object on new scene"` by default to false.
72-
- Backtrace stack trace improvements,
73-
- `BacktraceDatabase` retry method now respect correctly `BacktraceDatabase` `retryInterval` property,
74-
- New `Backtrace Configuration` won't override existing `Backtrace Configuration` in configuration directory.
75-
- Backtrace-Unity plugin tests now won't override some files in Backtrace-Database unit tests,
76-
- Backtrace-Unity plugin now allows you to setup client side deduplication rules via `Fingerprint`. By using this field you can limit reporting of an error that occurs many times over a few frames.
77-
- Backtrace report limit watcher feature now will validate limits before BacktraceReport creation.
78-
- `BacktraceClient` and `BacktraceDatabase` now expose `Reload` method. You can use this method do dynamically change `BacktraceClient`/`BacktraceDatabase` configurations.
79-
80-
## Version 1.1.5 - 09.01.2019
81-
82-
- Added support to DontDestroyOnLoad property. Right now users might use this property to store `BacktraceClient`/`BacktraceDatabase` instances between all game scenes.
83-
- Added more attributes to `BacktraceReport` object,
84-
- Added scene game objects information to `BacktraceReport` annotations.
85-
86-
## Version 1.1.4 - 27.08.2019
87-
88-
- Added support for servies under proxy (removed backtrace.sp conditions)
89-
90-
## Version 1.1.3 - 07.06.2019
91-
92-
- Removed error log when unity-plugin receive status code: 200 on attachment upload.
93-
94-
## Version 1.1.2 - 06.06.2019
95-
96-
- Changed a way how Unity-plugin upload attachments to Backtrace via `submit.backtrace.io`
97-
98-
## Version 1.1.1 - 28.03.2019
99-
100-
- Detailed log information when Unity plugin cannot send data to Backtrace,
101-
- Unhandled exception condition that wont catch exceptions that starts with string : `[Backtrace]::`,
102-
- Added support for system stack frames,
103-
- Line ending fix.
104-
105-
## Version 1.1.0 - 06.03.2019
106-
107-
- Support for multiple types of Attribute types - string, char, enum, int, float, double....
108-
- Support for submit.backtrace.io
109-
- If you send exception, `BacktraceReport` will generate stack trace based on exception stack trace. We will no longer include environment stack trace in exception reports,
110-
- `BacktraceDatabase` fix for `FirstOrDefault` invalid read,
111-
- Fixed duplicated global exception handler,
112-
- Fixed typo in debug Attribute,
113-
- Fixed stack trace in `BacktraceUnhandledException` object,
114-
115-
## Version 1.0.0 - 21.11.2018
116-
117-
First Backtrace-Unity plugin version
1+
# Backtrace Unity Release Notes
2+
3+
## Version 2.1.5
4+
5+
- Backtrace Unity plugin UI improvements - added tooltips, headers and collapsible menu for advanced options.
6+
- Changed Client-side deduplication menu,
7+
- `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.
8+
- Added exception source code information to exception and message type of reports.
9+
10+
## Version 2.1.4
11+
12+
- `EnvironmentVariable` class now will handle correctly nullable key/values,
13+
- `BacktraceAttributes` handle correctly nullable values.
14+
15+
## Version 2.1.3
16+
17+
- `BacktraceUnhandledException` will generate environment stack trace if Unity stack trace is empty. BacktraceReport will still generate normalized fingerprint for unhandled exception without stack trace.
18+
- `BacktraceUnhandledException` will provide information from Unity Error logger in source code property, which should improve error analysis in web debugger.
19+
- `BacktraceAttributes` won't try to collect `Annotations` anymore.
20+
- `Annotations` won't use ComplexAttributes property anymore.
21+
22+
## Version 2.1.2
23+
24+
- `BacktraceReport` will generate report fingerprint for exceptions without stack trace.
25+
- Changed game object depth default property value.
26+
- Added Exception information to the Annotation object.
27+
28+
## Version 2.1.1
29+
30+
- UPM modifications - fixed editor assembly definition,
31+
- Hiding Documentation and Scripts folders
32+
- Added Mac and Rider files to .gitignore
33+
- Moved Backtrace Configuration create menu deeper into the hierarchy
34+
35+
## Version 2.1.0
36+
37+
- UPM support - changed project structure and divide Backtrae-unity plugin into assemblies.
38+
39+
## Version 2.0.5
40+
41+
- Unity compatibility patch - .NET2.0, .NET 3.5 support (https://github.com/backtrace-labs/backtrace-unity/pull/10).
42+
- Untiy .NET Standard 2.0 support.
43+
- Expose minidump type option to Backtrace Client configuration in the UI.
44+
- Changed values of LangVersion to Mono or IL2CPP, depending on which is deployed.
45+
- Changed `Game object depth` property - default to `-1`, which means not to include Game Objects Hierarchy as an Annotation in the error report. Set the value to `1` to collect one level deep of Gane Object hierarchy, `2` to collect two levels deep, and so on. Setting the value to `0` will collect the full depth, which may be rather large if you have a lot of children.
46+
47+
## Version 2.0.4
48+
49+
- Added Game object depth property that allows developer to filter game object childrens in Backtrace report
50+
- Changed "Destroy client on new scene load" label. Now: "Destroy client on new scene load (false - Backtrace managed),
51+
- added namespaces to `XmlNodeConverter` class,
52+
- Added correct path to source file in `BacktraceUnhnandledException`,
53+
- Changed line endings in `BacktraceDatabase`, `ReportLimitWatcher`, `BacktraceClient` files,
54+
- Changed `ReactTransform` casting to `Component` in `Annotations` class. With this change Backtrace library should correctly send all game objects to Backtrace,
55+
- Changed a way how we guess game assets directory.
56+
57+
## Version 2.0.3
58+
59+
- Annotations object will validate game object before converting it.
60+
61+
## Version 2.0.2
62+
63+
- Fixed invalid cast for nested game objects in Backtrace Attributes,
64+
- BacktraceClient will print message only once per report rate limit hit per 1 minute.
65+
- `BacktraceDatabase` `Send` method will check client rate limit after each send.
66+
- `BacktraceClient` and `BacktraceDatabase` won't generate warning on `Disabled` event.
67+
68+
## Version 2.0.1
69+
70+
- `BacktraceApi` won't print anymore Error message when Backtrace-integration cannot send data to Backtrace. Now `BacktraceApi` will print warning instead.
71+
72+
## Version 2.0.0
73+
74+
- Backtrace-Unity plugin will set `"Destroy object on new scene"` by default to false.
75+
- Backtrace stack trace improvements,
76+
- `BacktraceDatabase` retry method now respect correctly `BacktraceDatabase` `retryInterval` property,
77+
- New `Backtrace Configuration` won't override existing `Backtrace Configuration` in configuration directory.
78+
- Backtrace-Unity plugin tests now won't override some files in Backtrace-Database unit tests,
79+
- Backtrace-Unity plugin now allows you to setup client-side deduplication rules via `Fingerprint`. By using this field you can limit reporting of an error that occurs many times over a few frames.
80+
- Backtrace report limit watcher feature now will validate limits before BacktraceReport creation.
81+
- `BacktraceClient` and `BacktraceDatabase` now expose `Reload` method. You can use this method do dynamically change `BacktraceClient`/`BacktraceDatabase` configurations.
82+
83+
## Version 1.1.5 - 09.01.2019
84+
85+
- Added support to DontDestroyOnLoad property. Right now users might use this property to store `BacktraceClient`/`BacktraceDatabase` instances between all game scenes.
86+
- Added more attributes to `BacktraceReport` object,
87+
- Added scene game objects information to `BacktraceReport` annotations.
88+
89+
## Version 1.1.4 - 27.08.2019
90+
91+
- Added support for servies under proxy (removed backtrace.sp conditions)
92+
93+
## Version 1.1.3 - 07.06.2019
94+
95+
- Removed error log when unity-plugin receive status code: 200 on attachment upload.
96+
97+
## Version 1.1.2 - 06.06.2019
98+
99+
- Changed a way how Unity-plugin upload attachments to Backtrace via `submit.backtrace.io`
100+
101+
## Version 1.1.1 - 28.03.2019
102+
103+
- Detailed log information when Unity plugin cannot send data to Backtrace,
104+
- Unhandled exception condition that wont catch exceptions that starts with string : `[Backtrace]::`,
105+
- Added support for system stack frames,
106+
- Line ending fix.
107+
108+
## Version 1.1.0 - 06.03.2019
109+
110+
- Support for multiple types of Attribute types - string, char, enum, int, float, double....
111+
- Support for submit.backtrace.io
112+
- If you send exception, `BacktraceReport` will generate stack trace based on exception stack trace. We will no longer include environment stack trace in exception reports,
113+
- `BacktraceDatabase` fix for `FirstOrDefault` invalid read,
114+
- Fixed duplicated global exception handler,
115+
- Fixed typo in debug Attribute,
116+
- Fixed stack trace in `BacktraceUnhandledException` object,
117+
118+
## Version 1.0.0 - 21.11.2018
119+
120+
First Backtrace-Unity plugin version

Editor/BacktraceClientConfigurationEditor.cs

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,32 @@
11
using Backtrace.Unity.Model;
2-
using Backtrace.Unity.Types;
3-
using System.IO;
42
using UnityEditor;
5-
using UnityEngine;
63

74
namespace Backtrace.Unity.Editor
85
{
96
[CustomEditor(typeof(BacktraceClientConfiguration))]
107
public class BacktraceClientConfigurationEditor : UnityEditor.Editor
118
{
12-
public const string LABEL_SERVER_URL = "Server Address";
13-
public const string LABEL_REPORT_PER_MIN = "Reports per minute";
14-
public const string LABEL_HANDLE_UNHANDLED_EXCEPTION = "Handle unhandled exceptions";
15-
16-
#if UNITY_2018_4_OR_NEWER
17-
public const string LABEL_IGNORE_SSL_VALIDATION = "Ignore SSL validation";
18-
#endif
19-
public const string LABEL_MINIDUMP_SUPPORT = "Minidump type";
20-
public const string LABEL_DEDUPLICATION_RULES = "Deduplication rules";
21-
public const string LABEL_GAME_OBJECT_DEPTH = "Game object depth limit";
22-
23-
public const string LABEL_DESTROY_CLIENT_ON_SCENE_LOAD = "Destroy client on new scene load (false - Backtrace managed)";
24-
25-
269
public override void OnInspectorGUI()
2710
{
2811
var settings = (BacktraceClientConfiguration)target;
2912

30-
settings.ServerUrl = EditorGUILayout.TextField(LABEL_SERVER_URL, settings.ServerUrl);
13+
settings.ServerUrl = EditorGUILayout.TextField(BacktraceConfigurationLabels.LABEL_SERVER_URL, settings.ServerUrl);
3114
settings.UpdateServerUrl();
3215
if (!settings.ValidateServerUrl())
3316
{
3417
EditorGUILayout.HelpBox("Detected different pattern of url. Please make sure you passed valid Backtrace url", MessageType.Warning);
3518
}
3619

37-
settings.DestroyOnLoad = EditorGUILayout.Toggle(LABEL_DESTROY_CLIENT_ON_SCENE_LOAD, settings.DestroyOnLoad);
38-
settings.ReportPerMin = EditorGUILayout.IntField(LABEL_REPORT_PER_MIN, settings.ReportPerMin);
39-
settings.HandleUnhandledExceptions = EditorGUILayout.Toggle(LABEL_HANDLE_UNHANDLED_EXCEPTION, settings.HandleUnhandledExceptions);
20+
settings.DestroyOnLoad = EditorGUILayout.Toggle(BacktraceConfigurationLabels.LABEL_DESTROY_CLIENT_ON_SCENE_LOAD, settings.DestroyOnLoad);
21+
settings.ReportPerMin = EditorGUILayout.IntField(BacktraceConfigurationLabels.LABEL_REPORT_PER_MIN, settings.ReportPerMin);
22+
settings.HandleUnhandledExceptions = EditorGUILayout.Toggle(BacktraceConfigurationLabels.LABEL_HANDLE_UNHANDLED_EXCEPTION, settings.HandleUnhandledExceptions);
4023

4124
#if UNITY_2018_4_OR_NEWER
42-
settings.IgnoreSslValidation = EditorGUILayout.Toggle(LABEL_IGNORE_SSL_VALIDATION, settings.IgnoreSslValidation);
25+
settings.IgnoreSslValidation = EditorGUILayout.Toggle(BacktraceConfigurationLabels.LABEL_IGNORE_SSL_VALIDATION, settings.IgnoreSslValidation);
4326
#else
4427
settings.IgnoreSslValidation = false;
4528
#endif
46-
settings.DeduplicationStrategy = (DeduplicationStrategy)EditorGUILayout.EnumPopup(LABEL_DEDUPLICATION_RULES, settings.DeduplicationStrategy);
47-
settings.GameObjectDepth = EditorGUILayout.IntField(LABEL_GAME_OBJECT_DEPTH, settings.GameObjectDepth);
29+
settings.GameObjectDepth = EditorGUILayout.IntField(BacktraceConfigurationLabels.LABEL_GAME_OBJECT_DEPTH, settings.GameObjectDepth);
4830
}
4931
}
5032

Editor/BacktraceClientEditor.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using Backtrace.Unity.Model;
22
using UnityEditor;
3-
using UnityEngine;
43

54
namespace Backtrace.Unity.Editor
65
{

0 commit comments

Comments
 (0)