Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83c4135a authored by Chong Zhang's avatar Chong Zhang Committed by Android (Google) Code Review
Browse files

Merge "Do not set waitForDebugger if the process to be debugged already started" into nyc-dev

parents 844ee77b 55c9d739
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -1097,7 +1097,21 @@ public final class ActivityStackSupervisor implements DisplayListener {
            // Don't debug things in the system process
            if (!aInfo.processName.equals("system")) {
                if ((startFlags & ActivityManager.START_FLAG_DEBUG) != 0) {
                    final ProcessRecord app = mService.getProcessRecordLocked(
                            aInfo.processName, aInfo.applicationInfo.uid, true);
                    // If the process already started, we can't wait for debugger and shouldn't
                    // modify the debug settings.
                    // For non-persistent debug, normally we set the debug app here, and restores
                    // to the original at attachApplication time. However, if the app process
                    // already exists, we won't get another attachApplication, and the debug setting
                    // never gets restored. Furthermore, if we get two such calls back-to-back,
                    // both mOrigDebugApp and mDebugApp will become the same app, and it won't be
                    // cleared even if we get attachApplication after the app process is killed.
                    if (app == null || app.thread == null) {
                        mService.setDebugApp(aInfo.processName, true, false);
                    } else {
                        Slog.w(TAG, "Ignoring waitForDebugger because process already exists");
                    }
                }

                if ((startFlags & ActivityManager.START_FLAG_NATIVE_DEBUGGING) != 0) {