Loading core/java/android/os/Binder.java +18 −2 Original line number Diff line number Diff line Loading @@ -137,6 +137,15 @@ public class Binder implements IBinder { sTracingEnabled = false; } /** * Dump proxy debug information. * * @hide */ public static void dumpProxyDebugInfo() { BinderProxy.dumpProxyDebugInfo(); } /** * Check if binder transaction tracing is enabled. * Loading Loading @@ -942,8 +951,7 @@ final class BinderProxy implements IBinder { // about to crash. final int totalUnclearedSize = unclearedSize(); if (totalUnclearedSize >= CRASH_AT_SIZE) { dumpProxyInterfaceCounts(); dumpPerUidProxyCounts(); dumpProxyDebugInfo(); Runtime.getRuntime().gc(); throw new AssertionError("Binder ProxyMap has too many entries: " + totalSize + " (total), " + totalUnclearedSize + " (uncleared), " Loading Loading @@ -1027,6 +1035,14 @@ final class BinderProxy implements IBinder { private static ProxyMap sProxyMap = new ProxyMap(); /** * @hide */ public static void dumpProxyDebugInfo() { sProxyMap.dumpProxyInterfaceCounts(); sProxyMap.dumpPerUidProxyCounts(); } /** * Return a BinderProxy for IBinder. * This method is thread-hostile! The (native) caller serializes getInstance() calls using Loading services/core/java/com/android/server/am/ActivityManagerService.java +1 −0 Original line number Diff line number Diff line Loading @@ -15174,6 +15174,7 @@ public class ActivityManagerService extends IActivityManager.Stub public void onLimitReached(int uid) { Slog.wtf(TAG, "Uid " + uid + " sent too many Binders to uid " + Process.myUid()); Binder.dumpProxyDebugInfo(); if (uid == Process.SYSTEM_UID) { Slog.i(TAG, "Skipping kill (uid is SYSTEM)"); } else { Loading
core/java/android/os/Binder.java +18 −2 Original line number Diff line number Diff line Loading @@ -137,6 +137,15 @@ public class Binder implements IBinder { sTracingEnabled = false; } /** * Dump proxy debug information. * * @hide */ public static void dumpProxyDebugInfo() { BinderProxy.dumpProxyDebugInfo(); } /** * Check if binder transaction tracing is enabled. * Loading Loading @@ -942,8 +951,7 @@ final class BinderProxy implements IBinder { // about to crash. final int totalUnclearedSize = unclearedSize(); if (totalUnclearedSize >= CRASH_AT_SIZE) { dumpProxyInterfaceCounts(); dumpPerUidProxyCounts(); dumpProxyDebugInfo(); Runtime.getRuntime().gc(); throw new AssertionError("Binder ProxyMap has too many entries: " + totalSize + " (total), " + totalUnclearedSize + " (uncleared), " Loading Loading @@ -1027,6 +1035,14 @@ final class BinderProxy implements IBinder { private static ProxyMap sProxyMap = new ProxyMap(); /** * @hide */ public static void dumpProxyDebugInfo() { sProxyMap.dumpProxyInterfaceCounts(); sProxyMap.dumpPerUidProxyCounts(); } /** * Return a BinderProxy for IBinder. * This method is thread-hostile! The (native) caller serializes getInstance() calls using Loading
services/core/java/com/android/server/am/ActivityManagerService.java +1 −0 Original line number Diff line number Diff line Loading @@ -15174,6 +15174,7 @@ public class ActivityManagerService extends IActivityManager.Stub public void onLimitReached(int uid) { Slog.wtf(TAG, "Uid " + uid + " sent too many Binders to uid " + Process.myUid()); Binder.dumpProxyDebugInfo(); if (uid == Process.SYSTEM_UID) { Slog.i(TAG, "Skipping kill (uid is SYSTEM)"); } else {