Loading core/java/android/app/ActivityThread.java +18 −0 Original line number Original line Diff line number Diff line Loading @@ -7236,6 +7236,8 @@ public final class ActivityThread extends ClientTransactionHandler } } } } VMDebug.setUserId(UserHandle.myUserId()); VMDebug.addApplication(data.appInfo.packageName); // send up app name; do this *before* waiting for debugger // send up app name; do this *before* waiting for debugger Process.setArgV0(data.processName); Process.setArgV0(data.processName); android.ddm.DdmHandleAppName.setAppName(data.processName, android.ddm.DdmHandleAppName.setAppName(data.processName, Loading Loading @@ -7758,9 +7760,20 @@ public final class ActivityThread extends ClientTransactionHandler file.getParentFile().mkdirs(); file.getParentFile().mkdirs(); Debug.startMethodTracing(file.toString(), 8 * 1024 * 1024); Debug.startMethodTracing(file.toString(), 8 * 1024 * 1024); } } if (ii.packageName != null) { VMDebug.addApplication(ii.packageName); } } } private void handleFinishInstrumentationWithoutRestart() { private void handleFinishInstrumentationWithoutRestart() { LoadedApk loadedApk = getApplication().mLoadedApk; // Only remove instrumentation app if this was not a self-testing app. if (mInstrumentationPackageName != null && loadedApk != null && !mInstrumentationPackageName .equals(loadedApk.mPackageName)) { VMDebug.removeApplication(mInstrumentationPackageName); } mInstrumentation.onDestroy(); mInstrumentation.onDestroy(); mInstrumentationPackageName = null; mInstrumentationPackageName = null; mInstrumentationAppDir = null; mInstrumentationAppDir = null; Loading Loading @@ -8794,6 +8807,11 @@ public final class ActivityThread extends ClientTransactionHandler return false; return false; } } void addApplication(@NonNull Application app) { mAllApplications.add(app); VMDebug.addApplication(app.mLoadedApk.mPackageName); } @Override @Override public boolean isInDensityCompatMode() { public boolean isInDensityCompatMode() { return mDensityCompatMode; return mDensityCompatMode; Loading core/java/android/app/LoadedApk.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1478,7 +1478,7 @@ public final class LoadedApk { + " package " + mPackageName + ": " + e.toString(), e); + " package " + mPackageName + ": " + e.toString(), e); } } } } mActivityThread.mAllApplications.add(app); mActivityThread.addApplication(app); mApplication = app; mApplication = app; if (!allowDuplicateInstances) { if (!allowDuplicateInstances) { synchronized (sApplications) { synchronized (sApplications) { Loading core/java/android/os/Debug.java +15 −4 Original line number Original line Diff line number Diff line Loading @@ -114,6 +114,7 @@ public final class Debug "opengl-tracing", "opengl-tracing", "view-hierarchy", "view-hierarchy", "support_boot_stages", "support_boot_stages", "app_info", }; }; /** /** Loading Loading @@ -1016,14 +1017,14 @@ public final class Debug // send VM_START. // send VM_START. System.out.println("Waiting for debugger first packet"); System.out.println("Waiting for debugger first packet"); mWaiting = true; setWaitingForDebugger(true); while (!isDebuggerConnected()) { while (!isDebuggerConnected()) { try { try { Thread.sleep(100); Thread.sleep(100); } catch (InterruptedException ie) { } catch (InterruptedException ie) { } } } } mWaiting = false; setWaitingForDebugger(false); System.out.println("Debug.suspendAllAndSentVmStart"); System.out.println("Debug.suspendAllAndSentVmStart"); VMDebug.suspendAllAndSendVmStart(); VMDebug.suspendAllAndSendVmStart(); Loading @@ -1049,12 +1050,12 @@ public final class Debug Chunk waitChunk = new Chunk(ChunkHandler.type("WAIT"), data, 0, 1); Chunk waitChunk = new Chunk(ChunkHandler.type("WAIT"), data, 0, 1); DdmServer.sendChunk(waitChunk); DdmServer.sendChunk(waitChunk); mWaiting = true; setWaitingForDebugger(true); while (!isDebuggerConnected()) { while (!isDebuggerConnected()) { try { Thread.sleep(SPIN_DELAY); } try { Thread.sleep(SPIN_DELAY); } catch (InterruptedException ie) {} catch (InterruptedException ie) {} } } mWaiting = false; setWaitingForDebugger(false); System.out.println("Debugger has connected"); System.out.println("Debugger has connected"); Loading Loading @@ -1111,6 +1112,16 @@ public final class Debug return VMDebug.getVmFeatureList(); return VMDebug.getVmFeatureList(); } } /** * Set whether the app is waiting for a debugger to connect * * @hide */ private static void setWaitingForDebugger(boolean waiting) { mWaiting = waiting; VMDebug.setWaitingForDebugger(waiting); } /** /** * Returns an array of strings that identify Framework features. This is * Returns an array of strings that identify Framework features. This is * used by DDMS to determine what sorts of operations the Framework can * used by DDMS to determine what sorts of operations the Framework can Loading core/java/android/os/Process.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.internal.os.SomeArgs; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; import com.android.sdksandbox.flags.Flags; import com.android.sdksandbox.flags.Flags; import dalvik.system.VMDebug; import dalvik.system.VMRuntime; import dalvik.system.VMRuntime; import libcore.io.IoUtils; import libcore.io.IoUtils; Loading Loading @@ -1411,6 +1412,7 @@ public class Process { public static void setArgV0(@NonNull String text) { public static void setArgV0(@NonNull String text) { sArgV0 = text; sArgV0 = text; setArgV0Native(text); setArgV0Native(text); VMDebug.setCurrentProcessName(text); } } private static native void setArgV0Native(String text); private static native void setArgV0Native(String text); Loading Loading
core/java/android/app/ActivityThread.java +18 −0 Original line number Original line Diff line number Diff line Loading @@ -7236,6 +7236,8 @@ public final class ActivityThread extends ClientTransactionHandler } } } } VMDebug.setUserId(UserHandle.myUserId()); VMDebug.addApplication(data.appInfo.packageName); // send up app name; do this *before* waiting for debugger // send up app name; do this *before* waiting for debugger Process.setArgV0(data.processName); Process.setArgV0(data.processName); android.ddm.DdmHandleAppName.setAppName(data.processName, android.ddm.DdmHandleAppName.setAppName(data.processName, Loading Loading @@ -7758,9 +7760,20 @@ public final class ActivityThread extends ClientTransactionHandler file.getParentFile().mkdirs(); file.getParentFile().mkdirs(); Debug.startMethodTracing(file.toString(), 8 * 1024 * 1024); Debug.startMethodTracing(file.toString(), 8 * 1024 * 1024); } } if (ii.packageName != null) { VMDebug.addApplication(ii.packageName); } } } private void handleFinishInstrumentationWithoutRestart() { private void handleFinishInstrumentationWithoutRestart() { LoadedApk loadedApk = getApplication().mLoadedApk; // Only remove instrumentation app if this was not a self-testing app. if (mInstrumentationPackageName != null && loadedApk != null && !mInstrumentationPackageName .equals(loadedApk.mPackageName)) { VMDebug.removeApplication(mInstrumentationPackageName); } mInstrumentation.onDestroy(); mInstrumentation.onDestroy(); mInstrumentationPackageName = null; mInstrumentationPackageName = null; mInstrumentationAppDir = null; mInstrumentationAppDir = null; Loading Loading @@ -8794,6 +8807,11 @@ public final class ActivityThread extends ClientTransactionHandler return false; return false; } } void addApplication(@NonNull Application app) { mAllApplications.add(app); VMDebug.addApplication(app.mLoadedApk.mPackageName); } @Override @Override public boolean isInDensityCompatMode() { public boolean isInDensityCompatMode() { return mDensityCompatMode; return mDensityCompatMode; Loading
core/java/android/app/LoadedApk.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1478,7 +1478,7 @@ public final class LoadedApk { + " package " + mPackageName + ": " + e.toString(), e); + " package " + mPackageName + ": " + e.toString(), e); } } } } mActivityThread.mAllApplications.add(app); mActivityThread.addApplication(app); mApplication = app; mApplication = app; if (!allowDuplicateInstances) { if (!allowDuplicateInstances) { synchronized (sApplications) { synchronized (sApplications) { Loading
core/java/android/os/Debug.java +15 −4 Original line number Original line Diff line number Diff line Loading @@ -114,6 +114,7 @@ public final class Debug "opengl-tracing", "opengl-tracing", "view-hierarchy", "view-hierarchy", "support_boot_stages", "support_boot_stages", "app_info", }; }; /** /** Loading Loading @@ -1016,14 +1017,14 @@ public final class Debug // send VM_START. // send VM_START. System.out.println("Waiting for debugger first packet"); System.out.println("Waiting for debugger first packet"); mWaiting = true; setWaitingForDebugger(true); while (!isDebuggerConnected()) { while (!isDebuggerConnected()) { try { try { Thread.sleep(100); Thread.sleep(100); } catch (InterruptedException ie) { } catch (InterruptedException ie) { } } } } mWaiting = false; setWaitingForDebugger(false); System.out.println("Debug.suspendAllAndSentVmStart"); System.out.println("Debug.suspendAllAndSentVmStart"); VMDebug.suspendAllAndSendVmStart(); VMDebug.suspendAllAndSendVmStart(); Loading @@ -1049,12 +1050,12 @@ public final class Debug Chunk waitChunk = new Chunk(ChunkHandler.type("WAIT"), data, 0, 1); Chunk waitChunk = new Chunk(ChunkHandler.type("WAIT"), data, 0, 1); DdmServer.sendChunk(waitChunk); DdmServer.sendChunk(waitChunk); mWaiting = true; setWaitingForDebugger(true); while (!isDebuggerConnected()) { while (!isDebuggerConnected()) { try { Thread.sleep(SPIN_DELAY); } try { Thread.sleep(SPIN_DELAY); } catch (InterruptedException ie) {} catch (InterruptedException ie) {} } } mWaiting = false; setWaitingForDebugger(false); System.out.println("Debugger has connected"); System.out.println("Debugger has connected"); Loading Loading @@ -1111,6 +1112,16 @@ public final class Debug return VMDebug.getVmFeatureList(); return VMDebug.getVmFeatureList(); } } /** * Set whether the app is waiting for a debugger to connect * * @hide */ private static void setWaitingForDebugger(boolean waiting) { mWaiting = waiting; VMDebug.setWaitingForDebugger(waiting); } /** /** * Returns an array of strings that identify Framework features. This is * Returns an array of strings that identify Framework features. This is * used by DDMS to determine what sorts of operations the Framework can * used by DDMS to determine what sorts of operations the Framework can Loading
core/java/android/os/Process.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.internal.os.SomeArgs; import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions; import com.android.sdksandbox.flags.Flags; import com.android.sdksandbox.flags.Flags; import dalvik.system.VMDebug; import dalvik.system.VMRuntime; import dalvik.system.VMRuntime; import libcore.io.IoUtils; import libcore.io.IoUtils; Loading Loading @@ -1411,6 +1412,7 @@ public class Process { public static void setArgV0(@NonNull String text) { public static void setArgV0(@NonNull String text) { sArgV0 = text; sArgV0 = text; setArgV0Native(text); setArgV0Native(text); VMDebug.setCurrentProcessName(text); } } private static native void setArgV0Native(String text); private static native void setArgV0Native(String text); Loading