diff options
| author | 2022-12-02 13:23:31 +0000 | |
|---|---|---|
| committer | 2022-12-02 13:23:31 +0000 | |
| commit | 213e7ff1d05a7c6ba98e83fb2fd24c4cc4fc258e (patch) | |
| tree | f00abc04be6343651066c2f9f520f20390a4c2ff | |
| parent | fcb07fbd7aea71c78cb19c6d89aca5190d18619f (diff) | |
| parent | e67a026d37b661ae24e8e0ff71a5037796c0d00c (diff) | |
Merge "Fix attaching debugger before activity launch"
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 96ced41f36ca..897cd1f27e11 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -6683,34 +6683,6 @@ public final class ActivityThread extends ClientTransactionHandler StrictMode.initThreadDefaults(data.appInfo); StrictMode.initVmDefaults(data.appInfo); - if (data.debugMode != ApplicationThreadConstants.DEBUG_OFF) { - // XXX should have option to change the port. - Debug.changeDebugPort(8100); - if (data.debugMode == ApplicationThreadConstants.DEBUG_WAIT) { - Slog.w(TAG, "Application " + data.info.getPackageName() - + " is waiting for the debugger on port 8100..."); - - IActivityManager mgr = ActivityManager.getService(); - try { - mgr.showWaitingForDebugger(mAppThread, true); - } catch (RemoteException ex) { - throw ex.rethrowFromSystemServer(); - } - - Debug.waitForDebugger(); - - try { - mgr.showWaitingForDebugger(mAppThread, false); - } catch (RemoteException ex) { - throw ex.rethrowFromSystemServer(); - } - - } else { - Slog.w(TAG, "Application " + data.info.getPackageName() - + " can be debugged on port 8100..."); - } - } - // Allow binder tracing, and application-generated systrace messages if we're profileable. boolean isAppDebuggable = (data.appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; boolean isAppProfileable = isAppDebuggable || data.appInfo.isProfileable(); @@ -6818,6 +6790,34 @@ public final class ActivityThread extends ClientTransactionHandler throw ex.rethrowFromSystemServer(); } + // Wait for debugger after we have notified the system to finish attach application + if (data.debugMode != ApplicationThreadConstants.DEBUG_OFF) { + // XXX should have option to change the port. + Debug.changeDebugPort(8100); + if (data.debugMode == ApplicationThreadConstants.DEBUG_WAIT) { + Slog.w(TAG, "Application " + data.info.getPackageName() + + " is waiting for the debugger on port 8100..."); + + try { + mgr.showWaitingForDebugger(mAppThread, true); + } catch (RemoteException ex) { + throw ex.rethrowFromSystemServer(); + } + + Debug.waitForDebugger(); + + try { + mgr.showWaitingForDebugger(mAppThread, false); + } catch (RemoteException ex) { + throw ex.rethrowFromSystemServer(); + } + + } else { + Slog.w(TAG, "Application " + data.info.getPackageName() + + " can be debugged on port 8100..."); + } + } + try { // If the app is being launched for full backup or restore, bring it up in // a restricted environment with the base application class. |