Базовая отладка AML
Отладчик AMLI поддерживает два типа специализированных команд: расширения отладчика AMLI и команды отладчика AMLI.
При отладке AML следует тщательно различать два различных типа запросов, которые будут отображаться в окне команды отладчика:
При появлении запроса kd> вы управляете отладчиком ядра. Доступны все стандартные команды и расширения отладчика ядра. Кроме того, доступны расширения отладчика AMLI. Эти расширения имеют синтаксис команды !amli. Команды отладчика AMLI недоступны в этом режиме.
Когда вы видите AMLI(? для справки)-> запрос, вы управляете отладчиком AMLI. (При использовании WinDbg эта строка появится в верхней области окна команды отладчика и В нижней области появится запрос ввода> .) В этой строке можно ввести любую команду отладчика AMLI. Вы также можете ввести любое расширение отладчика AMLI; Эти расширения не должны быть префиксированы с помощью !amli. Стандартные команды отладки ядра недоступны в этом режиме.
При отсутствии запроса на целевом компьютере выполняется.
В начале любого сеанса отладки необходимо задать параметры отладчика AMLI с расширением !amli set . Подробные параметры, трассировки и errbrkon также очень полезны. Следует рассмотреть возможность активации параметра spewon . Дополнительные сведения см. на странице справочника по расширению.
Отладчик AMLI может стать активным несколькими способами:
Если обнаружена точка останова в коде AML, ACPI разорвится в отладчик AMLI.
Если в коде AML возникает серьезная ошибка или исключение (например , int 3), ACPI разорвится в отладчик AMLI.
Если установлен параметр errbrkon, любая ошибка AML приведет к разрыву ACPI в отладчик AMLI.
Если вы хотите намеренно разбиться на отладчик AMLI, используйте расширение отладчика !amli, а затем команду g (Go). При следующем выполнении любого кода AML интерпретатором отладчик AMLI возьмет на себя.
При появлении запроса отладчика AMLI можно ввести q, чтобы вернуться в отладчик ядра или ввести g, чтобы возобновить нормальное выполнение.
Следующие расширения особенно полезны для отладки AML:
Расширение !amli dns отображает пространство имен ACPI для определенного объекта, дерево пространства имен, подчиненное данному объекту, или даже целое дерево пространства имен. Эта команда особенно полезна при определении того, какой объект пространства имен является -- является ли он методом, полем, устройством или другим типом объекта.
Расширение !amli find принимает имя любого объекта пространства имен и возвращает полный путь.
Код AML расширения !amli u unassembles.
Расширение !amli lc отображает краткие сведения обо всех активных контекстах ACPI.
Расширение !amli r отображает подробные сведения о текущем контексте интерпретатора. Это полезно при появлении запроса отладчика AMLI после обнаружения ошибки.
Точки останова можно задать и контролировать в коде AML. Используйте !amli bp, чтобы задать точку останова, !amli bc, чтобы очистить точку останова, !amli bd, чтобы отключить точку останова, !amli будет повторно включить точку останова и !amli bl для перечисления всех точек останова.
Отладчик AMLI может выполнять, шаг и трассировать по коду AML. Используйте команды run, p и t для выполнения этих действий.
Полный список расширений и команд см. в разделе "Использование расширений отладчика AMLI" и "Использование команд отладчика AMLI".