summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author beiyifb <beiyi@meta.com> 2023-12-12 20:48:17 -0800
committer beiyifb <beiyi@meta.com> 2023-12-13 06:46:53 -0800
commitf1e3a6d619ea84621e3b7a6ac716487d2dc215b3 (patch)
tree4ee483f3b9599d4ff12ae5b765b38b28b5ea8777
parent82eae7148477a47db1316e6cc3a4717cd2b73773 (diff)
Do not kill ANR-ed debugged application
Test: adb shell am set-debug-app --persistent <package> Observe that debugged app is not killed during stepping. Change-Id: I7a16a38cecbdf386bac04a4eda1680dd0dca6221
-rw-r--r--services/core/java/com/android/server/am/ProcessErrorStateRecord.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/am/ProcessErrorStateRecord.java b/services/core/java/com/android/server/am/ProcessErrorStateRecord.java
index e4983846f1da..dc3fad3eaff9 100644
--- a/services/core/java/com/android/server/am/ProcessErrorStateRecord.java
+++ b/services/core/java/com/android/server/am/ProcessErrorStateRecord.java
@@ -51,11 +51,11 @@ import android.util.SparseBooleanArray;
import com.android.internal.annotations.CompositeRWLock;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.modules.expresslog.Counter;
import com.android.internal.os.ProcessCpuTracker;
import com.android.internal.os.TimeoutRecord;
import com.android.internal.os.anr.AnrLatencyTracker;
import com.android.internal.util.FrameworkStatsLog;
+import com.android.modules.expresslog.Counter;
import com.android.server.ResourcePressureUtil;
import com.android.server.criticalevents.CriticalEventLog;
import com.android.server.stats.pull.ProcfsMemoryUtil.MemorySnapshot;
@@ -298,6 +298,11 @@ class ProcessErrorStateRecord {
ArrayList<Integer> firstPids = new ArrayList<>(5);
SparseBooleanArray lastPids = new SparseBooleanArray(20);
+ if (mApp.isDebugging()) {
+ Slog.i(TAG, "Skipping debugged app ANR: " + this + " " + annotation);
+ return;
+ }
+
mApp.getWindowProcessController().appEarlyNotResponding(annotation, () -> {
latencyTracker.waitingOnAMSLockStarted();
synchronized (mService) {