Поделиться через


!bpid

Расширение !bpid запрашивает, что процесс на целевом компьютере прерывается в отладчик или запрашивает, что отладчик пользовательского режима будет присоединен к процессу на целевом компьютере.

    !bpid [Options] PID 

Параметры

Выбор
Управляет дополнительными действиями этой команды.

Допустимые значения параметра отображаются в следующей таблице.

-a

Присоединяет новый отладчик пользовательского режима к процессу, указанному PID. Отладчик пользовательского режима выполняется на целевом компьютере.

-s

Добавляет точку останова, которая возникает в процессе WinLogon непосредственно перед разрывом в процессе пользовательского режима, заданном PID. Это позволяет пользователю проверить запрос перед попыткой действия.

-w

Сохраняет запрос в памяти на целевом компьютере. Целевая система может повторить запрос, но обычно это не обязательно.

PiD
Указывает идентификатор процесса требуемого процесса на целевом компьютере. Если вы используете это для управления отладчиком пользовательского режима на целевом компьютере, PID должен быть идентификатором процесса целевого приложения, а не отладчика в пользовательском режиме. (Так как идентификаторы процессов обычно перечислены в десятичном формате, может потребоваться префикс с 0n или преобразовать его в шестнадцатеричный формат.)

DLL-библиотеки

Kdexts.dll

Эта команда расширения поддерживается на целевых компьютерах на основе x86 на основе x64.

Замечания

Эта команда особенно полезна при перенаправлении входных и выходных данных отладчика пользовательского режима в отладчик ядра. Это приводит к разрыву целевого приложения в пользовательском режиме отладчика, который, в свою очередь, запрашивает входные данные от отладчика ядра. Дополнительные сведения см. в разделе "Управление отладчиком пользовательского режима" из отладчика ядра.

Если эта команда используется в другой ситуации, процесс пользовательского режима вызывает DbgBreakPoint. Обычно это будет прерываться непосредственно в отладчик ядра.

Параметр -s вызывает разрыв в WinLogon непосредственно перед прерыванием указанного процесса. Это полезно, если вы хотите выполнить действия отладки в контексте процесса WinLogon. Затем команду g (Go) можно использовать для перехода к второму перерыву.

Обратите внимание, что это расширение может завершиться ошибкой.

  • Отсутствие ресурсов. Расширение !bpid внедряет поток в целевой процесс, поэтому система должна иметь достаточно ресурсов для создания потока. Использование параметра -a требует еще больше системных ресурсов, так как !bpid -a должно запускать полный экземпляр отладчика на целевом компьютере.

  • Блокировка загрузчика уже проводится. Как !bpid, так и !bpid - требуется поток для запуска в целевом процессе, чтобы сделать его разрывом в отладчике. Если другой поток удерживает блокировку загрузчика, то поток !bpid не сможет запуститься, и разрыв в отладчике может не произойти. Таким образом, если !bpid завершается ошибкой, если для целевого процесса доступно достаточно памяти пользовательского режима, возможно, что блокировка загрузчика проводится.

  • Отсутствие разрешений. Для операции расширения !bpid требуется разрешение, достаточное для создания удаленного потока и подключения отладчика к заданному процессу.

  • Нет доступа к ntsd.exe. Если ntsd.exe не найден в обычно известном пути, !bpid не сможет задать соответствующий идентификатор идентификатора. Обратите внимание, что ntsd.exe по умолчанию не включены в Windows Vista.