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