Merge "Save existing temporary traces on reboot"
diff --git a/src/com/android/traceur/PerfettoUtils.java b/src/com/android/traceur/PerfettoUtils.java
index 7a43908..33d9ae7 100644
--- a/src/com/android/traceur/PerfettoUtils.java
+++ b/src/com/android/traceur/PerfettoUtils.java
@@ -82,11 +82,11 @@
Log.e(TAG, "Attempting to start perfetto trace but trace is already in progress");
return false;
} else {
- // Ensure the temporary trace file is cleared.
- try {
- Files.deleteIfExists(Paths.get(TEMP_TRACE_LOCATION));
- } catch (Exception e) {
- throw new RuntimeException(e);
+ // If a temporary trace file already exists, save it before beginning a new trace.
+ File recoveredFile = TraceUtils.getOutputFile(
+ TraceUtils.getRecoveredFilename());
+ if (!traceDump(recoveredFile)) {
+ Log.w(TAG, "Failed to recover in-progress trace.");
}
}
diff --git a/src/com/android/traceur/TraceUtils.java b/src/com/android/traceur/TraceUtils.java
index b813a1e..e4d744e 100644
--- a/src/com/android/traceur/TraceUtils.java
+++ b/src/com/android/traceur/TraceUtils.java
@@ -97,7 +97,8 @@
}
public static void clearSavedTraces() {
- String cmd = "rm -f " + TRACE_DIRECTORY + "trace-*.*trace";
+ String cmd = "rm -f " + TRACE_DIRECTORY + "trace-*.*trace " +
+ TRACE_DIRECTORY + "recovered-trace*.*trace";
Log.v(TAG, "Clearing trace directory: " + cmd);
try {
@@ -159,6 +160,10 @@
mTraceEngine.getOutputExtension());
}
+ public static String getRecoveredFilename() {
+ return "recovered-" + getOutputFilename();
+ }
+
public static File getOutputFile(String filename) {
return new File(TraceUtils.TRACE_DIRECTORY, filename);
}