Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Инструмент KDbgCtrl (контроль отладки ядра, kdbgctrl.exe) можно использовать для управления подключением отладки ядра с компьютера-цели.
Чтобы использовать это средство, целевой компьютер должен работать под управлением Windows Server 2003 или более поздней версии Windows.
KDbgCtrl может управлять пятью разными параметрами: полная отладка ядра, автоматическая отладка ядра, обработка ошибок User-Mode, блокировка отладки ядра и размер буфера DbgPrint.
Чтобы использовать KDbgCtrl, необходимо включить отладку ядра в параметрах загрузки целевого компьютера перед последней загрузкой. KDbgCtrl нельзя использовать для включения отладки ядра, если это не сделано. Дополнительные сведения об этих параметрах загрузки см. в разделе "Параметры загрузки", чтобы включить отладку .
Полная отладка ядра
Если включена полная отладка ядра, отладчик ядра, работающий на хост-компьютере, может получить доступ к целевому компьютеру. Целевой компьютер будет переходить в режим отладчика ядра, если возникнет исключение в режиме ядра. Сообщения от целевого к узлу, такие как вывод DbgPrint, сообщения о загрузке символов и перенаправленные сообщения отладчиков пользовательского режима, также разрешены.
Если этот параметр отключен, все сигналы с хост-компьютера будут игнорироваться целевым объектом.
Полная отладка ядра включена по умолчанию. Чтобы проверить текущее значение параметра, используйте kdbgctrl -c. Чтобы отключить этот параметр, используйте kdbgctrl -d. Чтобы включить этот параметр, используйте kdbgctrl -e.
Если вы хотите проверить текущий параметр и использовать его для управления выполнением в пакетном файле, можно использовать команду kdbgctrl -cx . Дополнительные сведения об этой команде см. в разделе "Параметры Command-Line KDbgCtrl".
Автоматическая отладка ядра
Если включена полная отладка ядра, текущий параметр для автоматической отладки ядра не имеет значения. Все сообщения разрешены.
Если полная отладка ядра отключена и включена автоматическая отладка ядра, только целевой компьютер может инициировать подключение к отладке.
В этом случае только исключение в режиме ядра, точка останова или другое событие режима ядра приведет к установлению подключения. Подключение не будет установлено для выходных данных DbgPrint, сообщений о загрузке символов, перенаправленных входных и выходных данных отладчика в режиме пользователя или других аналогичных сообщений. Они будут храниться в буфере DbgPrint вместо отправки в отладчик ядра.
Если исключение или событие приводит к тому, что цель входит в отладчик ядра, то полная отладка ядра будет автоматически включена, как если бы вы выполнили kdbgctrl -e.
Автоматическая отладка ядра отключена по умолчанию (хотя это не является нематериальным, если не отключена полная отладка ядра). Чтобы проверить текущее значение параметра, используйте kdbgctrl -ca. Чтобы отключить этот параметр, используйте kdbgctrl -da. Чтобы включить этот параметр, используйте kdbgctrl -ea.
обработка ошибокUser-Mode
Если включена обработка ошибок User-Mode, некоторые события пользовательского режима вызывают переход целевого компьютера в отладчик ядра.
В частности, все прерывания int 3, такие как точки останова, вставленные в код отладчиком, или вызовы DbgBreakPoint, приводят к прерыванию для отладчика ядра. Однако стандартные исключения , такие как нарушения доступа и деление на ноль, обычно не отправляются в отладчик ядра.
Если отладчик пользовательского режима уже подключен к процессу, этот отладчик будет записывать все ошибки пользовательского режима, а отладчик ядра не будет изменен. Приоритет различных обработчиков ошибок в режиме пользователя см. в разделе "Включение отладки Postmortem".
Для работы обработки ошибок User-Mode необходимо также включить либо полную отладку ядра, либо автоматическую отладку ядра.
User-Mode обработка ошибок включена по умолчанию. Чтобы проверить текущее значение параметра, используйте kdbgctrl -cu. Чтобы отключить этот параметр, используйте kdbgctrl -du. Чтобы включить этот параметр, используйте kdbgctrl -eu.
Блокировка отладки ядра
В некоторых случаях может потребоваться настроить целевой компьютер для отладки ядра, но дождитесь включения отладки ядра до тех пор, пока целевой компьютер не будет запущен. Это можно сделать, блокируя отладку ядра.
Это важно
Прежде чем использовать BCDEdit для изменения сведений о загрузке, может потребоваться временно приостановить функции безопасности Windows, такие как BitLocker и безопасная загрузка на тестовом компьютере. Повторно включите эти функции безопасности при завершении тестирования и соответствующим образом управлять тестируемым компьютером при отключении функций безопасности.
Чтобы заблокировать отладку ядра, настройте целевой компьютер с помощью команд, аналогичных следующим:
bcdedit /debug on
bcdedit /dbgsettings 1394 channel:32 /start DISABLE /noumex
При перезапуске целевого компьютера он будет подготовлен для отладки ядра, но отладка ядра и обработка ошибок User-Mode будут отключены. В этот момент главный компьютер не сможет подключиться к целевому компьютеру, проверки ошибок не будут обнаружены отладчиком ядра, и исключения в пользовательском режиме не будут вызывать перерыва в отладчике ядра.
Когда вы будете готовы, можно включить отладку ядра (без перезапуска целевого компьютера), введя следующие команды.
kdbgctrl -db
kdbgctrl -e
Позже можно отключить отладку ядра, введя следующие команды.
kdbgctrl -d
kdbgctrl -eb
Можно использовать kdbgctrl -cb , чтобы проверить, заблокирована ли отладка ядра.
Размер буфера DbgPrint
Буфер DbgPrint сохраняет сообщения, отправленные целевому компьютеру в отладчик ядра.
Если включена полная отладка ядра, эти сообщения будут автоматически отображаться в отладчике ядра. Но если этот параметр отключен, эти сообщения будут храниться в буфере. В последующий момент времени можно включить отладку ядра, подключиться к отладчику ядра и использовать расширение !dbgprint для просмотра содержимого этого буфера. Дополнительные сведения об этом буфере см. в разделе Буфер DbgPrint.
Размер буфера DbgPrint по умолчанию составляет 4 КБ в бесплатной сборке Windows. Чтобы определить текущий размер буфера, используйте kdbgctrl -cdb. Чтобы изменить размер буфера, используйте kdbgctrl -sdbSize, где size задает новый размер буфера. Сведения о синтаксисе см. в разделе "Параметры" Command-Line KDbgCtrl.
Примеры
Чтобы отобразить все текущие параметры, используйте следующую команду:
kdbgctrl -c -ca -cu -cb -cdb
Чтобы восстановить параметры по умолчанию, используйте следующую команду:
kdbgctrl -e -da -eu -db -sdb 0x1000
Чтобы заблокировать главный компьютер, чтобы связаться только с исключениями, используйте следующую команду:
kdbgctrl -d -ea -eu
Чтобы отключить все отладки ядра, используйте следующую команду:
kdbgctrl -d -da
Если вы отключите все отладки ядра, вы также можете увеличить размер буфера DbgPrint. Это проверяет, что все сообщения будут сохранены в случае, если их нужно увидеть позже. Если у вас есть мегабайт памяти для экономии, можно использовать следующую команду:
kdbgctrl -sdb 0x100000