Windows Tips & News

DTrace теперь доступен в Windows

click fraud protection

Следующее обновление функций Windows 10 (19H1, обновление за апрель 2019 г., версия 1903) будет включать поддержку DTrace, популярного средства отладки и диагностики с открытым исходным кодом. Первоначально он был создан для Solaris и стал доступен для Linux, FreeBSD, NetBSD и macOS. Microsoft портировала его на Windows.

DTrace - это среда динамической трассировки, которая позволяет администратору или разработчику в режиме реального времени просматривать систему в режиме пользователя или ядра. DTrace имеет высокоуровневый и мощный язык программирования в стиле C, который позволяет динамически вставлять точки трассировки. Используя эти динамически вставляемые точки трассировки, вы можете фильтровать условия или ошибки, писать код для анализа шаблонов блокировок, обнаружения взаимоблокировок и т. Д.

В Windows DTrace расширяет трассировку событий для Windows (ETW), которая является статической и не предоставляет возможности программной вставки точек трассировки во время выполнения.

Все API и функции, используемые dtrace.sys, являются документированными вызовами.

Microsoft реализовала специальный драйвер для Windows 10, который позволяет выполнять ряд ролей системного мониторинга. Драйвер будет включен в Windows 10 версии 1903. Кроме того, DTrace в настоящее время требует, чтобы Windows была запущена с включенным отладчиком ядра.

Исходный код перенесенного инструмента DTrace доступен на GitHub. Посетите страницу «DTrace в Windows»В рамках проекта OpenDTrace на GitHub, чтобы увидеть его.

Настройка DTrace в Windows 10

Предпосылки для использования функции

  • Инсайдер Windows 10 сборка 18342 или выше
  • Доступно только на x64 Windows и собирает информацию трассировки только для 64-битных процессов
  • Программа предварительной оценки Windows является включено а также настроен с действующей учетной записью Windows Insider.
    • Посетите Настройки-> Обновление и безопасность-> Программа предварительной оценки Windows для получения подробной информации.

Инструкции:

  1. Набор конфигурации BCD:
    1. bcdedit / установить dtrace на
    2. Обратите внимание: вам нужно снова установить опцию bcdedit, если вы обновитесь до новой сборки Insider
  2. Скачать и установите пакет DTrace из центр загрузки.
    1. При этом устанавливаются компоненты пользовательского режима, драйверы и дополнительные пакеты функций по запросу, необходимые для работы DTrace.
  3. Необязательно: обновите Переменная среды PATH включать C: \ Program Files \ DTrace
    1. установить PATH =% PATH%; "C: \ Program Files \ DTrace"
  4. Настраивать путь символа
    1. Создайте новый каталог для локального кэширования символов. Пример: mkdir c: \ symbols
    2. Установленный _NT_SYMBOL_PATH= SRV * C: \ символы *http://msdl.microsoft.com/download/symbols
    3. DTrace автоматически загружает необходимые символы с сервера символов и кэширует их по локальному пути.
  5. По желанию:Настроить отладчик ядра подключение к целевой машине (Ссылка MSDN). Это Только требуется, если вы хотите отслеживать события ядра с помощью FBT или других провайдеров.
    1. Обратите внимание, что вам нужно будет отключить Secureboot и Bitlocker на C:, (если он включен), если вы хотите настроить отладчик ядра.
  6. Перезагрузить целевая машина

Использование DTrace

  1. Откройте повышенная командная строка.
  2. Выполните одну из следующих команд:
    # Сводка системных вызовов по программе за 5 секунд: dtrace -Fn "tick-5sec {exit (0);} syscallentry {@num [pid, execname] = count ();}" # Подведение итогов установки / отмены программы таймера для 3 секунды: dtrace -Fn "tick-3sec {exit (0);} syscall:: Nt * Timer *: entry {@ [probefunc, execname, pid] = count ();}" # Дамп структуры ядра системного процесса: (требуется путь символа к быть установлен) dtrace -n "BEGIN {print (* (struct nt`_EPROCESS *) nt`PsInitialSystemProcess); exit (0);}" # Трассировка путей через NTFS при запуске notepad.exe (требуется KD a

Команда dtrace -lvn системный вызов перечислит все зонды и их параметры, доступные от поставщика системных вызовов.

Ниже перечислены некоторые из поставщиков, доступных для Windows, и их инструменты.

  • системный вызов - Системные вызовы NTOS
  • fbt (Отслеживание границ функции) - ввод и возврат функции ядра
  • пид - Отслеживание процессов в пользовательском режиме. Подобен FBT в режиме ядра, но также позволяет инструментировать произвольные смещения функций.
  • etw (Трассировка событий для Windows) - позволяет определять зонды для ETW. Этот поставщик помогает использовать существующие инструменты операционной системы в DTrace.
    • Это одно из дополнений, которые мы сделали для DTrace, чтобы позволить ему раскрывать и получать всю информацию, которую Windows уже предоставляет в ETW.

Дополнительные примеры сценариев, применимых к сценариям Windows, можно найти в этом каталог образцов.

Источник: Microsoft

Накопительные обновления для Windows 10, 14 сентября

Решает проблему, из-за которой PowerShell создает бесконечное количество дочерних каталогов. Эта ...

Читать далее

Windows 10 Build 16299.15 попала в список Release Preview

Windows 10 Build 16299.15 попала в список Release Preview

РЕКОМЕНДУЕМЫЕ: Щелкните здесь, чтобы исправить проблемы с Windows и оптимизировать производительн...

Читать далее

Верните Classic Paint в Windows 10 Creators Update

Верните Classic Paint в Windows 10 Creators Update

Как мы покрыт недавноНачиная с Windows 10 Creators Update, Microsoft отказалась от старого доброг...

Читать далее