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.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.