diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 0271354b3fff1..24f8fc26ae227 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -3830,8 +3830,11 @@ public final class ActiveServices { void serviceTimeout(ProcessRecord proc) { String anrMessage = null; - synchronized(mAm) { + if (proc.isDebugging()) { + // The app's being debugged, ignore timeout. + return; + } if (proc.executingServices.size() == 0 || proc.thread == null) { return; } diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java index 49930c1f4d627..e891e6e450ba0 100644 --- a/services/core/java/com/android/server/am/ProcessRecord.java +++ b/services/core/java/com/android/server/am/ProcessRecord.java @@ -1557,7 +1557,7 @@ class ProcessRecord implements WindowProcessListener { mService.mBatteryStatsService.noteProcessAnr(processName, uid); } - if (isSilentAnr()) { + if (isSilentAnr() && !isDebugging()) { kill("bg anr", true); return; }