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

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

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

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

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

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

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

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

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

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

Инструкции:

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

    1. Откройте командную строку с повышенными привилегиями.
    2. Выполните одну из следующих команд:
       #  Сводка системных вызовов по программе за 5 секунд: dtrace -Fn "tick-5sec {exit (0);} syscall ::: entry {@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 syscal l ::: перечислит все зонды и их параметры, доступные от поставщика системных вызовов.

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

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

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

    Источник: Microsoft

    Оцените статью
    digitdocom.ru
    Добавить комментарий