diff options
| -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. |