Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Команды отладчика могут предоставлять выходные данные в виде обычного текста или в расширенном формате, использующего язык разметки отладчика (DML). Выходные данные, расширенные с помощью DML, включают ссылки, которые можно щелкнуть для выполнения связанных команд.
DML доступен в Windows 10 и более поздних версиях.
Команды с поддержкой DML
Следующие команды могут создавать выходные данные DML:
Команда lmD — это пример команды, которая может предоставлять выходные данные DML. Команда lmD отображает список загруженных модулей. Как показано на следующем рисунке, каждое имя модуля — это ссылка, которую можно щелкнуть, чтобы получить более подробные сведения о модуле.
На следующем рисунке показан результат нажатия ссылки usbuhci . Выходные данные включают дополнительные ссылки, позволяющие изучить дополнительные сведения о модуле usbuhci.
Включение и отключение DML
Команда .prefer_dml включает или отключает DML. Если DML включен (.prefer_dml 1), команды, способные создавать выходные данные DML, по умолчанию будут создавать выходные данные DML.
Улучшения консоли
Все отладчики Windows теперь имеют области вывода команд, поддерживающие синтаксический анализ DML. В windbg командное окно поддерживает все поведение DML и отображает цвета, стили шрифтов и ссылки. Отладчики консоли, такие как ntsd, cdb и kd, поддерживают цветовые атрибуты DML только при выполнении в истинной консоли с включенным цветовым режимом. Отладчики с перенаправленными ввода-выводами, ntsd –d или remote.exe сеансы не будут отображать какие-либо цвета.
Режим цвета отладчика консоли
Отладчики консоли, ntsd, cdb и kd теперь могут отображать цветные выходные данные при выполнении в истинной консоли. Это не по умолчанию, он требует явного включения цветового режима с помощью tools.ini. Новый col_mode <true|false> токен в tools.ini управляет параметром цветового режима. Дополнительные сведения о работе с файлом tools.ini см. в разделе "Настройка tools.ini
Если режим цвета включен, отладчик может создавать цветные выходные данные. По умолчанию большинство цветов не заданы и вместо этого по умолчанию используются текущие цвета консоли.
Окно браузера команд Windbg
В Windows 10 и более поздних версиях Windbg окно командного браузера анализирует и отображает DML. Все теги, такие как <ссылка>, <exec> и изменения внешнего вида, полностью поддерживаются.
Чтобы запустить сеанс браузера команд с помощью меню в WinDbg, выберите "Вид" и " Браузер команд". Команда .browse < в командном окне откроет новое окно командного браузера и выполнит указанную команду. Дополнительные сведения см. в разделе "Использование окна командного браузера" в WinDbg (классическая модель). Новое окно браузера команд также можно открыть с помощью ctrl+N.
Окно браузера команд намеренно имитирует поведение веб-браузера с раскрывающимся списком и предыдущими и следующими кнопками. В раскрывающемся списке журнала отображаются только последние двадцать команд, но полная история сохраняется, и, возвращаясь к командам, можно заставить раскрывающееся меню показать более старую историю.
Вы можете одновременно открыть столько окон команд, сколько вам нравится. Программные окна в рабочих областях сохраняются, но сохраняется только текущая команда; история не сохраняется.
В меню "Представление WinDbg" есть параметр " Задать команду "Пуск браузера" , с помощью которой пользователь может задать предпочтительную команду для новых окон браузера, например .dml_start. Эта команда сохраняется в рабочих областях.
В меню "Вид" доступно вложенное окно "Последние команды" для хранения интересующих команд. При выборе последней команды откроется новый браузер с заданной командой. В контекстном меню окна браузера есть пункт меню меню, который добавляет текущую команду окна в список последних команд. Список последних команд сохраняется в рабочих областях.
Окно браузера команд выполняет команду синхронно и поэтому не отображает выходные данные до завершения команды. Длительные команды не будут отображать ничего, пока они не завершаются.
Ссылки имеют контекстное меню правой кнопкой мыши, аналогичное контекстное меню правой кнопкой мыши в веб-браузере. Ссылки можно открыть в новом окне браузера. Команду ссылки можно скопировать в буфер обмена для последующего использования.
Чтобы настроить окна командного браузера на автоматическое или ручное обновление, щелкните значок в правом верхнем углу строки заголовка. Браузеры с автоперезагрузкой будут повторно выполнять свою команду при изменении состояния отладчика. Это поддерживает выходные данные в режиме реального времени, но за счёт выполнения команды при каждом изменении. Автоматическое обновление включено по умолчанию. Если окно браузера не должно быть активно, можно использовать контекстное меню окна, чтобы отключить автоматическое обновление.
Поскольку команды выполняются движком, а не пользовательским интерфейсом, команды пользовательского интерфейса, такие как CLS (Clear Screen), возвращают синтаксическую ошибку при использовании в окнах командного браузера. Это также означает, что если пользовательский интерфейс является удаленным клиентом, команда будет выполняться сервером, а не клиентом, а выходные данные команды будут отображать состояние сервера.
Окна командного браузера могут выполнять любую команду отладчика, и она не обязательно должна быть командой, которая создает DML. Окна браузера можно использовать для произвольного набора команд, активных для использования.
Настройка DML
DML определяет небольшой набор тегов, которые можно включить в выходные данные команды. Одним из примеров <является тег ссылки> . Вы можете экспериментировать с тегом <ссылки> (и другими тегами DML), используя команды .dml_start и .browse . Команда .browse .dml_startfilepath выполняет команды, хранящиеся в DML-файле. Выходные данные отображаются в окне командного браузера вместо обычного командного окна.
Предположим, что файл c:\DmlExperiment.txt содержит следующие строки.
My DML Experiment
<link cmd="lmD musb*">List modules that begin with usb.</link>
Следующая команда отображает текст и ссылку в окне командного браузера.
.browse .dml_start c:\Dml_Experiment.txt
Если вы нажмете ссылку модули списка, начинающиеся с usb, вы увидите результат, аналогичный изображению ниже.
Подробные сведения о настройке DML и полном списке тегов DML см. в разделе "Настройка выходных данных отладчика с помощью DML".