/// <summary> /// Collect additional report information from client and convert report to backtrace data /// </summary> /// <param name="report">Backtrace report</param> /// <returns>Backtrace data</returns> private BacktraceData SetupBacktraceData(BacktraceReport report) { // apply _mod fingerprint attribute when client should use // normalized exception message instead environment stack trace // for exceptions without stack trace. if (Configuration.UseNormalizedExceptionMessage) { report.SetReportFingerPrintForEmptyStackTrace(); } // add environment information to backtrace report var sourceCode = _backtraceLogManager.Disabled ? new BacktraceUnityMessage(report).ToString() : _backtraceLogManager.ToSourceCode(); report.AssignSourceCodeToReport(sourceCode); // pass copy of dictionary to prevent overriding client attributes var result = report.ToBacktraceData(null, GameObjectDepth); // add native attributes to client report if (_nativeClient != null) { _nativeClient.GetAttributes(result.Attributes.Attributes); } // apply client attributes foreach (var attribute in _clientAttributes) { result.Attributes.Attributes[attribute.Key] = attribute.Value; } return(result); }
/// <summary> /// Collect additional report information from client and convert report to backtrace data /// </summary> /// <param name="report">Backtrace report</param> /// <returns>Backtrace data</returns> private BacktraceData SetupBacktraceData(BacktraceReport report) { // apply _mod fingerprint attribute when client should use // normalized exception message instead environment stack trace // for exceptions without stack trace. if (Configuration.UseNormalizedExceptionMessage) { report.SetReportFingerPrintForEmptyStackTrace(); } // add environment information to backtrace report var sourceCode = _backtraceLogManager.Disabled ? new BacktraceUnityMessage(report).ToString() : _backtraceLogManager.ToSourceCode(); report.AssignSourceCodeToReport(sourceCode); var reportAttributes = _nativeClient == null ? _clientAttributes : _nativeClient.GetAttributes().Merge(_clientAttributes); // pass copy of dictionary to prevent overriding client attributes return(report.ToBacktraceData(new Dictionary <string, string>(reportAttributes), GameObjectDepth)); }