Microsoft портировал DTrace для Windows
Компания Microsoft объявила о портировании системы динамической отладки DTrace для платформы Windows. Подготовленные в рамках проделанной работы изменения, за исключением драйвера ядра, размещены в форме отдельной ветки в репозитории проекта OpenDTrace, нацеленного на создание переносимой реализации DTrace, способной работать в различных операционных системах. В течение нескольких месяцев планируется добиться включения кода в основной состав OpenDTrace.
Поддержка DTrace в Windows 10 доступна начиная с экспериментальной сборки 18342. Для включения следует активировать опцию dtrace ("bcdedit /set dtrace on") и установить специально подготовленный msi-пакет. Для отладки событий в ядре Windows дополнительно требуется настройка режима удаленной отладки. Управление осуществляется при помощи штатной команды dtrace. Поддерживаются такие провайдеры как syscall (отлеживание системных вызовов NTOS), fbt (отслеживание обращений к функциям ядра), pid (отслеживания процессов в пространстве пользователя) и etw (трассировка событий Windows).
Скрипты на языке D компилируются в промежуточный формат DIF и передается для выполнения в специальную виртуальную машину DIF Virtual Machine, работающую на уровне ядра и реализованную в форме драйвера dtrace.sys. Дополнительно применяется еще один проприетарный драйвер traceext.sys, предоставляющий функции для трассировки на уровне ядра Windows, на основе которых реализованы все основные провайдеры DTrace.
Изначально технология DTrace была разработана для операционной системы Solaris для решения задач по динамической трассировке ядра системы и конечных приложений. DTrace предоставляет пользователю возможность детально отслеживать поведение системы и в режиме реального времени производить диагностику проблем, не влияя в процессе отладки на работу и производительность исследуемых приложений, что позволяет организовать анализ работающих систем на лету. Код инструментария и модуля для ядра Linux поставляются компанией Oracle под лицензией GPLv2. Проект OpenDTrace был создан до перелицензирования и поэтому остается под лицензией CDDL, несовместимой с GPL.