Следващата актуализация на функцията на Windows 10 (19H1, актуализация от април 2019 г., версия 1903) ще включва поддръжка за DTrace, популярния инструмент за отстраняване на грешки и диагностика с отворен код. Първоначално е създаден за Solaris и е достъпен за Linux, FreeBSD, NetBSD и macOS. Microsoft го пренесе на Windows.
Реклама
DTrace е динамична рамка за проследяване, която позволява на администратор или разработчик да получи поглед в реално време в системата в режим на потребител или ядро. DTrace има високо ниво и мощен програмен език в стил C, който ви позволява динамично да вмъквате точки за проследяване. Използвайки тези динамично вмъкнати точки на проследяване, можете да филтрирате по условия или грешки, да пишете код, за да анализирате модели на заключване, да откривате блокировки и т.н.
ако върна подарък на Amazon, купувачът ще знае ли
В 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 за подробности
Инструкции:
как да получите връзка на сървър за раздори
- BCD конфигурация е зададена :
- bcdedit / задайте dtrace
- Забележете, че трябва да зададете опцията bcdedit отново, ако надстроите до нова версия на Insider
- Изтегли и инсталирайте пакета DTrace от център за изтегляне .
- Това инсталира компонентите на потребителския режим, драйверите и допълнителните функции при пакети при поискване, необходими за функционирането на DTrace.
- По избор: Актуализирайте Променлива на средата PATH да включва C: Program Files DTrace
- задайте PATH =% PATH%; 'C: Program Files DTrace'
- Настройвам път на символа
- Създайте нова директория за кеширане на символи локално. Пример: mkdir c: символи
- Комплект _NT_SYMBOL_PATH = srv * C: символи * http://msdl.microsoft.com/download/symbols
- DTrace автоматично изтегля необходимите символи от сървъра за символи и кешира в локалния път.
- По избор: Настройка на ядрото за отстраняване на грешки връзка с целевата машина ( MSDN връзка ). Това е само изисква се, ако искате да проследите събитията в ядрото с помощта на FBT или други доставчици.
- Имайте предвид, че ще трябва да деактивирате Secureboot и Bitlocker на C :, (ако е разрешено), ако искате да настроите дебъгер на ядрото.
- Рестартирайте целева машина
Използване на DTrace
- Отворете повишен команден ред .
- Изпълнете една от следните команди:
# Обобщение на Syscall по програма за 5 секунди: dtrace -Fn 'tick-5sec {exit (0);} syscall ::: entry {@num [pid, execname] = count ();}' # Обобщаване на таймера за настройка / отмяна на програма за 3 секунди: dtrace -Fn 'tick-3sec {изход (0);} syscall :: Nt * Таймер *: влизане {@ [probefunc, execname, pid] = count ();}' # Dump System Process ядро структура: (изисква да бъде зададен път на символ) dtrace -n 'BEGIN {print (* (struct nt`_EPROCESS *) nt`PsInitialSystemProcess); exit (0);}' # Проследяване на пътища през NTFS при стартиране на notepad.exe (изисква KD a
Командата dtrace -lvn syscall ::: ще изброи всички сонди и техните параметри, достъпни от доставчика на syscall.
По-долу са някои от доставчиците, налични в Windows, и това, което те инструментират.
- syscall - NTOS системни обаждания
- fbt (Функционално проследяване на граници) - Въвеждане и връщане на функцията на ядрото
- pid - Проследяване на процеса в потребителски режим. Подобно на FBT в режим на ядро, но също така позволява измерване на произволни отмествания на функции.
- sth (Проследяване на събития за Windows) - Позволява да се определят сонди за ETW Този доставчик помага да се използват съществуващите инструменти на операционната система в DTrace.
- Това е едно допълнение, което сме направили на DTrace, за да му позволи да изложи и да получи цялата информация, която Windows вече предоставя ETW .
Още примерни скриптове, приложими за сценарии на Windows, могат да бъдат намерени в това директория с образци .
Източник: Microsoft