LiveKD, служебная программа, написанная для компакт-диска, включенного в Windows 2000, 3-го выпуска, теперь доступна бесплатно. LiveKD позволяет запускать отладчики ядра Kd и Windbg Майкрософт, которые являются частью пакета средств отладки для Windows локально в динамической системе. Выполните все команды отладчика, которые работают с файлами аварийного дампа, чтобы выглядеть глубоко внутри системы. Сведения о том, как изучить систему с помощью отладчиков ядра, см. в документации по отладке Windows и нашей книге.
Хотя последние версии Windbg и Kd имеют аналогичную возможность в Windows Vista и Server 2008, LiveKD обеспечивает более функциональные возможности, такие как просмотр стеков потоков с помощью команды !thread, чем Windbg и собственный объект отладки ядра Kd.
Установка
Сначала скачайте и установите пакет средств отладки для Windows на веб-сайте Майкрософт:
Если установить средства в каталог по умолчанию \Program Files\Microsoft\Debugging Tools for Windows, можно запустить LiveKD из любого каталога. В противном случае следует скопировать LiveKD в каталог, в котором установлены средства.
Если вы не установили символы для системы, в которой выполняется LiveKD, LiveKD попросит автоматически настроить систему на использование сервера символов Майкрософт (см. документацию по отладке для Windows для файлов символов и сервера символов Майкрософт).
ПРИМЕЧАНИЕ. Отладчик Майкрософт будет жаловаться, что он не может найти символы для LIVEKDD.SYS. Это ожидается, так как я не сделал символы для LIVEKDD.SYS доступной и не влияет на поведение отладчика.
Указывает имя или GUID виртуальной машины Hyper-V для отладки.
-hvd
Включает страницы гипервизора (только Windows 8.1 и более поздних версий).
-hvl
Перечисляет имена и идентификаторы GUID для запуска виртуальных машин Hyper-V.
-k
Указывает полный путь и имя файла образа отладчика для выполнения
-m
Создает зеркальный дамп, который является согласованным представлением памяти ядра. Доступно только память в режиме ядра, и этот параметр может потребовать значительных объемов доступной физической памяти. Маска флагов, указывающая, какие регионы могут быть включены при необходимости (нарисованы из следующей таблицы, 0x18F8 по умолчанию): 0001 — обработка частного, 0002 — сопоставленный файл, 0004 — общий раздел, 0008 — страницы таблицы страниц, 0010 — страничный пул, 0020 — нестраничный пул, 0040 — системные PTEs, 0080 — страницы сеансов, 0100 — файлы метаданных, 0200 — страницы пользователей AWE, 0400 — страницы драйверов, 0800 — стеки ядра, 1000 — метаданные WS, 2000 — большие страницы По умолчанию записывается большинство содержимого памяти ядра и рекомендуется. Этот параметр можно использовать с параметром -o, чтобы быстрее сохранять согласованные дампы. Для зеркальных дампов требуется Windows Vista или Windows Server 2008 или более поздней версии. Sysinternals RamMap предоставляет графическое представление о распределении доступных регионов памяти, которые можно выбрать для включения.
-мл
Создайте динамический дампов с помощью собственной поддержки (только Windows 8.1 и выше).
-нардеп
Указывает один процесс, содержимое памяти в режиме пользователя которого должно быть включено в зеркальный дамп. Действует только с параметром -m.
-o
Сохраняет memory.dmp на диск вместо запуска отладчика.
-p
Приостанавливает целевую виртуальную машину Hyper-V, пока LiveKd активна (рекомендуется использовать с -o). Указывает имя или GUID виртуальной машины Hyper-V для отладки.
-hvl
Перечисляет имена и идентификаторы GUID для запуска виртуальных машин Hyper-V.
-vsym
Отображает подробные сведения об отладке операций загрузки символов.
-w
Работает windbg вместо kd
Все остальные параметры передаются отладчику.
Примечание. Используйте ctrl-break, чтобы завершить работу и перезапустить отладчик, если он зависает.
Узнайте, как выполнять эффективную отладку приложений .NET с помощью Visual Studio, чтобы быстро устранять ошибки. Используйте интерактивный отладчик в Visual Studio для анализа приложений C# и устранения ошибок.