Loading services/core/java/com/android/server/wm/ActivityStartController.java +4 −0 Original line number Diff line number Diff line Loading @@ -639,6 +639,10 @@ public class ActivityStartController { return mPendingRemoteAnimationRegistry; } ActivityRecord getLastStartActivity() { return mLastStarter != null ? mLastStarter.mStartActivity : null; } void dumpLastHomeActivityStartResult(PrintWriter pw, String prefix) { pw.print(prefix); pw.print("mLastHomeActivityStartResult="); Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +18 −7 Original line number Diff line number Diff line Loading @@ -5554,7 +5554,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { * Saves the current activity manager state and includes the saved state in the next dump of * activity manager. */ void saveANRState(String reason) { void saveANRState(ActivityRecord activity, String reason) { final StringWriter sw = new StringWriter(); final PrintWriter pw = new FastPrintWriter(sw, false, 1024); pw.println(" ANR time: " + DateFormat.getDateTimeInstance().format(new Date())); Loading @@ -5562,14 +5562,25 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { pw.println(" Reason: " + reason); } pw.println(); getActivityStartController().dump(pw, " ", null); if (activity != null) { final Task rootTask = activity.getRootTask(); if (rootTask != null) { rootTask.forAllTaskFragments( tf -> tf.dumpInner(" ", pw, true /* dumpAll */, null /* dumpPackage */)); pw.println(); } mActivityStartController.dump(pw, " ", activity.packageName); if (mActivityStartController.getLastStartActivity() != activity) { activity.dump(pw, " ", true /* dumpAll */); } } ActivityTaskSupervisor.printThisActivity(pw, mRootWindowContainer.getTopResumedActivity(), null /* dumpPackage */, INVALID_DISPLAY, true /* needSep */, " ResumedActivity: ", /* header= */ null /* header */); mLockTaskController.dump(pw, " "); mKeyguardController.dump(pw, " "); pw.println("-------------------------------------------------------------------" + "------------"); dumpActivitiesLocked(null /* fd */, pw, null /* args */, 0 /* opti */, true /* dumpAll */, false /* dumpClient */, null /* dumpPackage */, INVALID_DISPLAY, "" /* header */); pw.println(); pw.close(); mLastANRState = sw.toString(); Loading services/core/java/com/android/server/wm/AnrController.java +1 −1 Original line number Diff line number Diff line Loading @@ -367,7 +367,7 @@ class AnrController { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "dumpAnrStateLocked()"); synchronized (mService.mGlobalLock) { mService.saveANRStateLocked(activity, windowState, reason); mService.mAtmService.saveANRState(reason); mService.mAtmService.saveANRState(activity, reason); } } finally { Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); Loading services/core/java/com/android/server/wm/DisplayPolicy.java +0 −4 Original line number Diff line number Diff line Loading @@ -104,7 +104,6 @@ import android.os.SystemProperties; import android.os.Trace; import android.os.UserHandle; import android.util.ArraySet; import android.util.PrintWriterPrinter; import android.util.Slog; import android.util.SparseArray; import android.view.DisplayInfo; Loading Loading @@ -2880,9 +2879,6 @@ public class DisplayPolicy { if (!CLIENT_TRANSIENT) { mSystemGestures.dump(pw, prefix); } pw.print(prefix); pw.println("Looper state:"); mHandler.getLooper().dump(new PrintWriterPrinter(pw), prefix + " "); } private boolean supportsPointerLocation() { Loading services/core/java/com/android/server/wm/WindowManagerService.java +23 −9 Original line number Diff line number Diff line Loading @@ -6750,11 +6750,6 @@ public class WindowManagerService extends IWindowManager.Stub private void dumpWindowsLocked(PrintWriter pw, boolean dumpAll, ArrayList<WindowState> windows) { pw.println("WINDOW MANAGER WINDOWS (dumpsys window windows)"); dumpWindowsNoHeaderLocked(pw, dumpAll, windows); } private void dumpWindowsNoHeaderLocked(PrintWriter pw, boolean dumpAll, ArrayList<WindowState> windows) { mRoot.dumpWindowsNoHeader(pw, dumpAll, windows); if (!mHidingNonSystemOverlayWindows.isEmpty()) { Loading Loading @@ -6989,9 +6984,15 @@ public class WindowManagerService extends IWindowManager.Stub if (reason != null) { pw.println(" Reason: " + reason); } pw.println(); final ArrayList<WindowState> relatedWindows = new ArrayList<>(); for (int i = mRoot.getChildCount() - 1; i >= 0; i--) { final DisplayContent dc = mRoot.getChildAt(i); final int displayId = dc.getDisplayId(); final WindowState currentFocus = dc.mCurrentFocus; final ActivityRecord focusedApp = dc.mFocusedApp; pw.println(" Display #" + displayId + " currentFocus=" + currentFocus + " focusedApp=" + focusedApp); if (!dc.mWinAddedSinceNullFocus.isEmpty()) { pw.println(" Windows added in display #" + displayId + " since null focus: " + dc.mWinAddedSinceNullFocus); Loading @@ -7000,12 +7001,25 @@ public class WindowManagerService extends IWindowManager.Stub pw.println(" Windows removed in display #" + displayId + " since null focus: " + dc.mWinRemovedSinceNullFocus); } } pw.println(" Tasks in top down Z order:"); dc.forAllTaskDisplayAreas(tda -> { tda.dump(pw, " ", false /* dumpAll */); }); dc.getInputMonitor().dump(pw, " "); pw.println(); dumpWindowsNoHeaderLocked(pw, true, null); dc.forAllWindows(w -> { if ((currentFocus != null && Objects.equals(w.mAttrs.packageName, currentFocus.mAttrs.packageName)) || (focusedApp != null && Objects.equals(w.mAttrs.packageName, focusedApp.packageName))) { relatedWindows.add(w); } }, true /* traverseTopToBottom */); } if (windowState != null && !relatedWindows.contains(windowState)) { relatedWindows.add(windowState); } mRoot.dumpWindowsNoHeader(pw, true /* dumpAll */, relatedWindows); pw.println(); pw.println("Last ANR continued"); mRoot.dumpDisplayContents(pw); pw.close(); mLastANRState = sw.toString(); Loading Loading
services/core/java/com/android/server/wm/ActivityStartController.java +4 −0 Original line number Diff line number Diff line Loading @@ -639,6 +639,10 @@ public class ActivityStartController { return mPendingRemoteAnimationRegistry; } ActivityRecord getLastStartActivity() { return mLastStarter != null ? mLastStarter.mStartActivity : null; } void dumpLastHomeActivityStartResult(PrintWriter pw, String prefix) { pw.print(prefix); pw.print("mLastHomeActivityStartResult="); Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +18 −7 Original line number Diff line number Diff line Loading @@ -5554,7 +5554,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { * Saves the current activity manager state and includes the saved state in the next dump of * activity manager. */ void saveANRState(String reason) { void saveANRState(ActivityRecord activity, String reason) { final StringWriter sw = new StringWriter(); final PrintWriter pw = new FastPrintWriter(sw, false, 1024); pw.println(" ANR time: " + DateFormat.getDateTimeInstance().format(new Date())); Loading @@ -5562,14 +5562,25 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { pw.println(" Reason: " + reason); } pw.println(); getActivityStartController().dump(pw, " ", null); if (activity != null) { final Task rootTask = activity.getRootTask(); if (rootTask != null) { rootTask.forAllTaskFragments( tf -> tf.dumpInner(" ", pw, true /* dumpAll */, null /* dumpPackage */)); pw.println(); } mActivityStartController.dump(pw, " ", activity.packageName); if (mActivityStartController.getLastStartActivity() != activity) { activity.dump(pw, " ", true /* dumpAll */); } } ActivityTaskSupervisor.printThisActivity(pw, mRootWindowContainer.getTopResumedActivity(), null /* dumpPackage */, INVALID_DISPLAY, true /* needSep */, " ResumedActivity: ", /* header= */ null /* header */); mLockTaskController.dump(pw, " "); mKeyguardController.dump(pw, " "); pw.println("-------------------------------------------------------------------" + "------------"); dumpActivitiesLocked(null /* fd */, pw, null /* args */, 0 /* opti */, true /* dumpAll */, false /* dumpClient */, null /* dumpPackage */, INVALID_DISPLAY, "" /* header */); pw.println(); pw.close(); mLastANRState = sw.toString(); Loading
services/core/java/com/android/server/wm/AnrController.java +1 −1 Original line number Diff line number Diff line Loading @@ -367,7 +367,7 @@ class AnrController { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "dumpAnrStateLocked()"); synchronized (mService.mGlobalLock) { mService.saveANRStateLocked(activity, windowState, reason); mService.mAtmService.saveANRState(reason); mService.mAtmService.saveANRState(activity, reason); } } finally { Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); Loading
services/core/java/com/android/server/wm/DisplayPolicy.java +0 −4 Original line number Diff line number Diff line Loading @@ -104,7 +104,6 @@ import android.os.SystemProperties; import android.os.Trace; import android.os.UserHandle; import android.util.ArraySet; import android.util.PrintWriterPrinter; import android.util.Slog; import android.util.SparseArray; import android.view.DisplayInfo; Loading Loading @@ -2880,9 +2879,6 @@ public class DisplayPolicy { if (!CLIENT_TRANSIENT) { mSystemGestures.dump(pw, prefix); } pw.print(prefix); pw.println("Looper state:"); mHandler.getLooper().dump(new PrintWriterPrinter(pw), prefix + " "); } private boolean supportsPointerLocation() { Loading
services/core/java/com/android/server/wm/WindowManagerService.java +23 −9 Original line number Diff line number Diff line Loading @@ -6750,11 +6750,6 @@ public class WindowManagerService extends IWindowManager.Stub private void dumpWindowsLocked(PrintWriter pw, boolean dumpAll, ArrayList<WindowState> windows) { pw.println("WINDOW MANAGER WINDOWS (dumpsys window windows)"); dumpWindowsNoHeaderLocked(pw, dumpAll, windows); } private void dumpWindowsNoHeaderLocked(PrintWriter pw, boolean dumpAll, ArrayList<WindowState> windows) { mRoot.dumpWindowsNoHeader(pw, dumpAll, windows); if (!mHidingNonSystemOverlayWindows.isEmpty()) { Loading Loading @@ -6989,9 +6984,15 @@ public class WindowManagerService extends IWindowManager.Stub if (reason != null) { pw.println(" Reason: " + reason); } pw.println(); final ArrayList<WindowState> relatedWindows = new ArrayList<>(); for (int i = mRoot.getChildCount() - 1; i >= 0; i--) { final DisplayContent dc = mRoot.getChildAt(i); final int displayId = dc.getDisplayId(); final WindowState currentFocus = dc.mCurrentFocus; final ActivityRecord focusedApp = dc.mFocusedApp; pw.println(" Display #" + displayId + " currentFocus=" + currentFocus + " focusedApp=" + focusedApp); if (!dc.mWinAddedSinceNullFocus.isEmpty()) { pw.println(" Windows added in display #" + displayId + " since null focus: " + dc.mWinAddedSinceNullFocus); Loading @@ -7000,12 +7001,25 @@ public class WindowManagerService extends IWindowManager.Stub pw.println(" Windows removed in display #" + displayId + " since null focus: " + dc.mWinRemovedSinceNullFocus); } } pw.println(" Tasks in top down Z order:"); dc.forAllTaskDisplayAreas(tda -> { tda.dump(pw, " ", false /* dumpAll */); }); dc.getInputMonitor().dump(pw, " "); pw.println(); dumpWindowsNoHeaderLocked(pw, true, null); dc.forAllWindows(w -> { if ((currentFocus != null && Objects.equals(w.mAttrs.packageName, currentFocus.mAttrs.packageName)) || (focusedApp != null && Objects.equals(w.mAttrs.packageName, focusedApp.packageName))) { relatedWindows.add(w); } }, true /* traverseTopToBottom */); } if (windowState != null && !relatedWindows.contains(windowState)) { relatedWindows.add(windowState); } mRoot.dumpWindowsNoHeader(pw, true /* dumpAll */, relatedWindows); pw.println(); pw.println("Last ANR continued"); mRoot.dumpDisplayContents(pw); pw.close(); mLastANRState = sw.toString(); Loading