diff options
| -rw-r--r-- | cmds/dumpstate/dumpstate.cpp | 12 | ||||
| -rw-r--r-- | cmds/dumpstate/dumpstate.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/cmds/dumpstate/dumpstate.cpp b/cmds/dumpstate/dumpstate.cpp index 31930ff08c..a999c9f22e 100644 --- a/cmds/dumpstate/dumpstate.cpp +++ b/cmds/dumpstate/dumpstate.cpp @@ -2911,6 +2911,10 @@ Dumpstate::RunStatus Dumpstate::RunInternal(int32_t calling_uid, // own activity pushes out interesting data from the trace ring buffer. // The trace file is added to the zip by MaybeAddSystemTraceToZip(). MaybeSnapshotSystemTrace(); + + // If a winscope trace is running, snapshot it now. It will be pulled into bugreport later + // from WMTRACE_DATA_DIR. + MaybeSnapshotWinTrace(); } onUiIntensiveBugreportDumpsFinished(calling_uid); MaybeCheckUserConsent(calling_uid, calling_package); @@ -3022,6 +3026,14 @@ void Dumpstate::MaybeSnapshotSystemTrace() { // file in the later stages. } +void Dumpstate::MaybeSnapshotWinTrace() { + RunCommand( + // Empty name because it's not intended to be classified as a bugreport section. + // Actual tracing files can be found in "/data/misc/wmtrace/" in the bugreport. + "", {"cmd", "window", "tracing", "save-for-bugreport"}, + CommandOptions::WithTimeout(10).Always().DropRoot().RedirectStderr().Build()); +} + void Dumpstate::onUiIntensiveBugreportDumpsFinished(int32_t calling_uid) { if (calling_uid == AID_SHELL || !CalledByApi()) { return; diff --git a/cmds/dumpstate/dumpstate.h b/cmds/dumpstate/dumpstate.h index f83968b59e..83e6787ebf 100644 --- a/cmds/dumpstate/dumpstate.h +++ b/cmds/dumpstate/dumpstate.h @@ -549,6 +549,7 @@ class Dumpstate { void MaybeTakeEarlyScreenshot(); void MaybeSnapshotSystemTrace(); + void MaybeSnapshotWinTrace(); void onUiIntensiveBugreportDumpsFinished(int32_t calling_uid); |