diff options
author | Brian Carlstrom <bdc@google.com> | 2017-03-17 20:32:59 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-03-17 20:33:04 +0000 |
commit | dd08db08ff6a5fe89c63c813510c6ba07716dc6e (patch) | |
tree | be2cd0ca4f3ef9baf375522a526eb2a1fc977943 | |
parent | 57efc93f081ba3e6ddf3b20cf34d28792e3b45cc (diff) | |
parent | 66524247d4d5f21a86624a6ccdd5f014bf5aa8b6 (diff) |
Merge "Dump native stack for background ANR if process is of interest"
-rw-r--r-- | services/core/java/com/android/server/am/AppErrors.java | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java index 36a913fb9c53..f927ccea1d5d 100644 --- a/services/core/java/com/android/server/am/AppErrors.java +++ b/services/core/java/com/android/server/am/AppErrors.java @@ -857,17 +857,26 @@ class AppErrors { ProcessCpuTracker processCpuTracker = new ProcessCpuTracker(true); - String[] nativeProcs = NATIVE_STACKS_OF_INTEREST; - // don't dump native PIDs for background ANRs - File tracesFile = null; + // don't dump native PIDs for background ANRs unless it is the process of interest + String[] nativeProcs = null; if (isSilentANR) { - tracesFile = mService.dumpStackTraces(true, firstPids, null, lastPids, - null); + for (int i = 0; i < NATIVE_STACKS_OF_INTEREST.length; i++) { + if (NATIVE_STACKS_OF_INTEREST[i].equals(app.processName)) { + nativeProcs = new String[] { app.processName }; + break; + } + } } else { - tracesFile = mService.dumpStackTraces(true, firstPids, processCpuTracker, lastPids, - nativeProcs); + nativeProcs = NATIVE_STACKS_OF_INTEREST; } + // For background ANRs, don't pass the ProcessCpuTracker to + // avoid spending 1/2 second collecting stats to rank lastPids. + File tracesFile = mService.dumpStackTraces(true, firstPids, + (isSilentANR) ? null : processCpuTracker, + (isSilentANR) ? null : lastPids, + nativeProcs); + String cpuInfo = null; if (ActivityManagerService.MONITOR_CPU_USAGE) { mService.updateCpuStatsNow(); |