Повторное подключение к целевому приложению
Если отладчик зависает или иным образом перестает отвечать (т. е. аварийно завершает работу) во время отладки в пользовательском режиме, можно подключить новый отладчик к существующему процессу.
Примечание Этот метод поддерживается только в Microsoft Windows XP и более поздних версиях Windows. Этот метод не зависит от того, был ли отладчик изначально создан процесс или присоединен к существующему процессу. Этот метод не зависит от того, использовался ли параметр -pd .
Чтобы повторно подключить отладчик к существующему целевому приложению, выполните следующие действия.
Определите идентификатор процесса целевого приложения.
Запустите новый экземпляр CDB или WinDbg. Используйте параметр командной строки -pe .
Debugger -pe -p PID
Можно также использовать другие параметры командной строки.
Вы также можете подключиться из неактивного отладчика с помощью команды .attach (Присоединить к процессу) вместе с параметром -e .
После завершения присоединения завершите исходный процесс отладчика.
Если процесс не отвечает должным образом, может быть слишком большое число приостановок. Вы можете использовать команду ~m (Возобновить поток), чтобы уменьшить число приостановок. Дополнительные сведения о количестве приостановок см. в разделе Управление процессами и потоками.
Если исходный отладчик по-прежнему работает правильно, этот метод может не работать. Два отладчика конкурируют за события отладки, и операционная система Windows не обязательно назначает все события отладки новому отладчику.
Если исходный отладчик завершается до подключения нового отладчика, целевое приложение также закрывается. (Однако если отладчик подключен с параметром -pd , а затем завершает работу в обычном режиме, целевое приложение продолжает работать. В этом случае второй отладчик может подключиться к целевому приложению без использования параметра -pe .)
Если вы уже выполняете отладку процесса и хотите отсоединиться от него, но оставить его в состоянии отладки, можно использовать команду .abandon (Abandon Process). После выполнения этой команды любой отладчик Windows может повторно подключиться к процессу с помощью процедуры, описанной в этом разделе.