From c0e527e3880b740bffffc7a191a2f0d65c824f92 Mon Sep 17 00:00:00 2001 From: serega404 Date: Sat, 19 Dec 2020 20:14:31 +0300 Subject: [PATCH] Added StackTrace Provider --- .../progressia/ProgressiaLauncher.java | 1 + .../crash/providers/StackTraceProvider.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/main/java/ru/windcorp/progressia/common/util/crash/providers/StackTraceProvider.java diff --git a/src/main/java/ru/windcorp/progressia/ProgressiaLauncher.java b/src/main/java/ru/windcorp/progressia/ProgressiaLauncher.java index 3a4608c..330fa16 100644 --- a/src/main/java/ru/windcorp/progressia/ProgressiaLauncher.java +++ b/src/main/java/ru/windcorp/progressia/ProgressiaLauncher.java @@ -39,6 +39,7 @@ public class ProgressiaLauncher { CrashReports.registerProvider(new OpenALContextProvider()); CrashReports.registerProvider(new ArgsContextProvider()); CrashReports.registerProvider(new LanguageContextProvider()); + CrashReports.registerProvider(new StackTraceProvider()); // Analyzers CrashReports.registerAnalyzer(new OutOfMemoryAnalyzer()); diff --git a/src/main/java/ru/windcorp/progressia/common/util/crash/providers/StackTraceProvider.java b/src/main/java/ru/windcorp/progressia/common/util/crash/providers/StackTraceProvider.java new file mode 100644 index 0000000..0469dca --- /dev/null +++ b/src/main/java/ru/windcorp/progressia/common/util/crash/providers/StackTraceProvider.java @@ -0,0 +1,24 @@ +package ru.windcorp.progressia.common.util.crash.providers; + +import ru.windcorp.progressia.common.util.crash.ContextProvider; + +import java.util.Map; + +public class StackTraceProvider implements ContextProvider { + @Override + public void provideContext(Map output) { + StackTraceElement[] stackTraceBuffer = Thread.currentThread().getStackTrace(); + StringBuilder sb = new StringBuilder(); + sb.append("\n"); + for (int i = 4; i < stackTraceBuffer.length; i++) { + sb.append(stackTraceBuffer[i].toString()).append("\n"); + } + + output.put("Reported from " + Thread.currentThread().getName(), sb.toString()); + } + + @Override + public String getName() { + return "Stack Trace Context Provider"; + } +}