Trace all info in exception on app crash
MODIFY
WalletWasabi.Fluent.Desktop/Program.cs
WalletWasabi.Fluent.Desktop/Program.cs
@@ -103,7 +103,7 @@ public class Program
Logger.LogError(ex);
- RxApp.MainThreadScheduler.Schedule(() => throw ex);
+ RxApp.MainThreadScheduler.Schedule(() => throw new ApplicationException("Command execution crashed", ex));
});
Logger.LogSoftwareStarted("Wasabi GUI");

MODIFY
WalletWasabi.Fluent/CrashReport/ViewModels/CrashReportWindowViewModel.cs
WalletWasabi.Fluent/CrashReport/ViewModels/CrashReportWindowViewModel.cs
@@ -40,8 +40,7 @@ public class CrashReportWindowViewModel : ViewModelBase
public string Caption => $"A problem has occurred and Wasabi is unable to continue.";
- public string Trace => $"{SerializedException.Message}{Environment.NewLine}" +
- $"{Environment.NewLine}{SerializedException.StackTrace}";
+ public string Trace => SerializedException.ToString();
public string Title => "Wasabi has crashed";
}

MODIFY
WalletWasabi/Models/SerializableException.cs
WalletWasabi/Models/SerializableException.cs
@@ -50,4 +50,14 @@ public record SerializableException
var json = Encoding.UTF8.GetString(Convert.FromBase64String(base64String));
return JsonConvert.DeserializeObject<SerializableException>(json);
}
+
+ public override string ToString()
+ {
+ return string.Join(
+ Environment.NewLine + Environment.NewLine,
+ $"Exception type: {ExceptionType}",
+ $"Message: {Message}",
+ $"Stack Trace: {StackTrace}",
+ $"Inner Exception: {InnerException}");
+ }
}

Trace all info in exception on app crash