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 Използване на DTraceНастройте DTrace в Windows 10
Предварителни условия за използване на функцията
- Вътрешна информация за Windows 10компилация 18342или по-високо
- Предлага се само наx64Windows и улавя информация за проследяване само за 64-битови процеси Програмата Windows Insider еактивираниконфигуриранс валиден Windows Insider акаунт
- Посетете Настройки->Актуализиране и защита->Програма Windows Insider за подробности
Инструкции:
- BCD конфигурационен набор:
- bcdedit /задайте dtrace на
- Имайте предвид, че трябва да зададете опцията bcdedit отново, ако надстроите до нова версия на Insider
- Това инсталира компонентите на потребителския режим, драйверите и пакетите с допълнителни функции при поискване, необходими за функционирането на DTrace.
- По избор: АктуализирайтеПроменлива на средата PATHда включваC:Program FilesDTrace
- set PATH=%PATH%;'C:Program FilesDTrace'
- Настройвамсимволен път
- Създайте нова директория за локално кеширане на символи. Пример: mkdir c:symbols
- Комплект_NT_SYMBOL_PATH=srv*C:символи* http://msdl.microsoft.com/download/symbols
- DTrace автоматично изтегля необходимите символи от сървъра на символи и кешира в локалния път.
По избор:Настройка на дебъгера на ядротовръзка с целевата машина ( MSDN връзка). Това есамоизисква се, ако искате да проследите събития на ядрото с помощта на FBT или други доставчици. - Имайте предвид, че ще трябва да деактивирате Secureboot и Bitlocker на C:, (ако е активиран), ако искате да настроите дебъгер на ядрото.
Използване на DTrace
- Отворете команден ред с повишени права.
- Изпълнете една от следните команди:|_+_|
Командатаdtrace -lvn syscall :::ще изброи всички сонди и техните параметри, налични от доставчика на syscall.
По-долу са някои от доставчиците, налични в Windows, и какво инструментират.
- syscall – системни извиквания на NTOSfbt (проследяване на границата на функцията) – въвеждане и връщане на функция на ядрото – проследяване на процеса в потребителски режим. Подобно на FBT в режим на ядрото, но също така позволява инструментирането на произволна функция offsets.etw (Проследяване на събития за Windows) – Позволява дефиниране на сонди за ETW. Този доставчик помага да се използва инструментариумът на съществуващата операционна система в DTrace.
- Това е едно допълнение, което направихме към DTrace, за да му позволим да изложи и получи цялата информация, която Windows вече предоставя S.T.W.
Още примерни скриптове, приложими за сценарии на Windows, можете да намерите тук указател с мостри.
източник: Microsoft