diff options
| author | 2023-12-12 20:48:17 -0800 | |
|---|---|---|
| committer | 2023-12-13 06:46:53 -0800 | |
| commit | f1e3a6d619ea84621e3b7a6ac716487d2dc215b3 (patch) | |
| tree | 4ee483f3b9599d4ff12ae5b765b38b28b5ea8777 | |
| parent | 82eae7148477a47db1316e6cc3a4717cd2b73773 (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.java | 7 |
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) { |