Add blocked threads to the debug log.

This commit is contained in:
Greyson Parrelli 2019-09-25 10:43:03 -04:00
parent 5b755b9501
commit df4ecc4e32

View File

@ -71,6 +71,7 @@ import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Locale; import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -97,11 +98,12 @@ public class SubmitLogFragment extends Fragment {
private static final String API_ENDPOINT = "https://debuglogs.org"; private static final String API_ENDPOINT = "https://debuglogs.org";
private static final String HEADER_SYSINFO = "========== SYSINFO ========"; private static final String HEADER_SYSINFO = "========= SYSINFO =========";
private static final String HEADER_JOBS = "=========== JOBS ========="; private static final String HEADER_JOBS = "=========== JOBS ==========";
private static final String HEADER_POWER = "========== POWER ========="; private static final String HEADER_POWER = "========== POWER ==========";
private static final String HEADER_LOGCAT = "========== LOGCAT ========"; private static final String HEADER_THREADS = "===== BLOCKED THREADS =====";
private static final String HEADER_LOGGER = "========== LOGGER ========"; private static final String HEADER_LOGCAT = "========== LOGCAT =========";
private static final String HEADER_LOGGER = "========== LOGGER =========";
private Button okButton; private Button okButton;
private Button cancelButton; private Button cancelButton;
@ -395,6 +397,11 @@ public class SubmitLogFragment extends Fragment {
.append("\n\n\n"); .append("\n\n\n");
} }
stringBuilder.append(HEADER_THREADS)
.append("\n\n")
.append(buildBlockedThreads())
.append("\n\n\n");
stringBuilder.append(HEADER_LOGCAT) stringBuilder.append(HEADER_LOGCAT)
.append("\n\n") .append("\n\n")
.append(scrubbedLogcat) .append(scrubbedLogcat)
@ -557,6 +564,27 @@ public class SubmitLogFragment extends Fragment {
.append(info.getHistory()); .append(info.getHistory());
} }
private static CharSequence buildBlockedThreads() {
Map<Thread, StackTraceElement[]> traces = Thread.getAllStackTraces();
StringBuilder out = new StringBuilder();
for (Map.Entry<Thread, StackTraceElement[]> entry : traces.entrySet()) {
if (entry.getKey().getState() == Thread.State.BLOCKED) {
Thread thread = entry.getKey();
out.append("-- [").append(thread.getId()).append("] ")
.append(thread.getName()).append(" (").append(thread.getState().toString()).append(")\n");
for (StackTraceElement element : entry.getValue()) {
out.append(element.toString()).append("\n");
}
out.append("\n");
}
}
return out.length() == 0 ? "None" : out;
}
private static Iterable<String> getSupportedAbis() { private static Iterable<String> getSupportedAbis() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
return Arrays.asList(Build.SUPPORTED_ABIS); return Arrays.asList(Build.SUPPORTED_ABIS);