Loading services/core/java/com/android/server/am/ProcessErrorStateRecord.java +13 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ import com.android.server.wm.WindowProcessController; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; import java.time.Instant; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.UUID; import java.util.concurrent.ExecutionException; Loading @@ -76,6 +79,9 @@ import java.util.concurrent.atomic.AtomicLong; * The error state of the process, such as if it's crashing/ANR etc. */ class ProcessErrorStateRecord { private static final DateTimeFormatter DROPBOX_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSZ"); final ProcessRecord mApp; private final ActivityManagerService mService; Loading Loading @@ -444,6 +450,13 @@ class ProcessErrorStateRecord { info.append("ErrorId: ").append(errorId.toString()).append("\n"); } info.append("Frozen: ").append(mApp.mOptRecord.isFrozen()).append("\n"); if (timeoutRecord != null && timeoutRecord.mEndUptimeMillis > 0) { long millisSinceEndUptimeMs = anrTime - timeoutRecord.mEndUptimeMillis; String formattedTime = DROPBOX_TIME_FORMATTER.format( Instant.now().minusMillis(millisSinceEndUptimeMs) .atZone(ZoneId.systemDefault())); info.append("Timestamp: ").append(formattedTime).append("\n"); } // Retrieve controller with max ANR delay from AnrControllers // Note that we retrieve the controller before dumping stacks because dumping stacks can Loading Loading
services/core/java/com/android/server/am/ProcessErrorStateRecord.java +13 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ import com.android.server.wm.WindowProcessController; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; import java.time.Instant; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.UUID; import java.util.concurrent.ExecutionException; Loading @@ -76,6 +79,9 @@ import java.util.concurrent.atomic.AtomicLong; * The error state of the process, such as if it's crashing/ANR etc. */ class ProcessErrorStateRecord { private static final DateTimeFormatter DROPBOX_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSZ"); final ProcessRecord mApp; private final ActivityManagerService mService; Loading Loading @@ -444,6 +450,13 @@ class ProcessErrorStateRecord { info.append("ErrorId: ").append(errorId.toString()).append("\n"); } info.append("Frozen: ").append(mApp.mOptRecord.isFrozen()).append("\n"); if (timeoutRecord != null && timeoutRecord.mEndUptimeMillis > 0) { long millisSinceEndUptimeMs = anrTime - timeoutRecord.mEndUptimeMillis; String formattedTime = DROPBOX_TIME_FORMATTER.format( Instant.now().minusMillis(millisSinceEndUptimeMs) .atZone(ZoneId.systemDefault())); info.append("Timestamp: ").append(formattedTime).append("\n"); } // Retrieve controller with max ANR delay from AnrControllers // Note that we retrieve the controller before dumping stacks because dumping stacks can Loading