Windows Tips & News

DTrace на Windows отримує оновлення 20H1 з підтримкою ARM64

click fraud protection
РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність системи

DTrace — популярний інструмент для налагодження та діагностики з відкритим кодом. Спочатку він був створений для Solaris і став доступним для Linux, FreeBSD, NetBSD і macOS. Корпорація Майкрософт перенесла його на Windows і додає до нього частину оновлень за допомогою оновлення функцій 20H1.

Реклама

DTrace — це динамічна структура відстеження, яка дозволяє адміністратору або розробнику отримувати огляд системи в режимі реального часу в режимі користувача або ядра. DTrace має високий рівень і потужну мову програмування в стилі C, що дозволяє динамічно вставляти точки трасування. Використовуючи ці динамічно вставлені точки трасування, ви можете фільтрувати умови або помилки, писати код для аналізу шаблонів блокування, виявляти тупики тощо.

У Windows DTrace розширює функцію відстеження подій для Windows (ETW), яка є статичною і не надає можливості програмно вставляти точки трасування під час виконання.

Усі API та функції, які використовує dtrace.sys, є задокументованими викликами.

Dtrace на Windows

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

Починаючи з інсайдерської збірки Windows 10 19041.21, DTrace має такі покращення.

Змістприховати
Попередній перегляд ARM64
Режим користувача Stackwalk
Жива підтримка дампів
Трасування ETW

Попередній перегляд ARM64

Так, правильно! DTrace тепер підтримує ARM64 в режимі попереднього перегляду. ARM64 MSI доступний за посиланням для завантаження, наведеним вище.

Ви можете використовувати його на своєму Surface Pro X запуск останньої збірки Windows 10 Insider Preview (20H1), починаючи з 19041.21.

DTrace On ArmDTrace на Surface Pro X

Режим користувача Stackwalk

У попередньому перегляді функція стека в DTrace була обмежена режимом ядра (стеком). Це оновлення додає підтримку функції Stackwalk в режимі користувача (ustack). Як і стек, засіб ustack повністю сумісний зі специфікацією DTrace з відкритим кодом. Його можна викликати трьома способами, вказавши рамки (глибину) і розмір (наразі ігнорувати) або void.

  • Ustack (nframes, розмір)
  • Ustack (nframes)
  • Ustack()

У той час як ustack () може визначати адресу викликаючого кадру, коли спрацьовує зонд, фрейми стека будуть не буде перекладено на символи, доки дія ustack () не буде оброблено в режимі користувача споживачем DTrace. Завантаження символу може уповільнити вихід. Отже, краще використовувати цей засіб із локально кешованими символами, як показано нижче.

dtrace -n "profile-1ms /arg1/ {ustack (50, 0); вихід (0);} " -y C:\symbols. dtrace: опис 'profile-1ms' відповідає 1 пробі. ІД ЦП ФУНКЦІЯ: НАЗВА 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc44

Жива підтримка дампів

Windows зазвичай використовує те, що називається Живий смітник щоб допомогти швидко діагностувати проблеми. Живі дампи допомагають усунути проблеми, пов’язані з кількома процесами, або проблемами в системі без простоїв. У 20H1 DTrace у Windows можна використовувати для захоплення дампу в реальному часі зсередини D-скрипту за допомогою lkd() Засіб DTrace. Поширеним випадком використання цього засобу є інструментування шляху помилки (наприклад, код повернення вказує на збій) і захоплення живого дампу прямо в точці відмови для розширеної діагностики. Додаткову інформацію про підтримку дампу в реальному часі див DTrace Live Dump.

dtrace -wn "syscallreturn { якщо (arg0 != 0xc0000001UL) { lkd (0); printf(\" Запуск дампу в реальному часі \n \");exit (0); }}" dtrace: опис 'syscallreturn' відповідає 1411 пробам. dtrace: дозволяє виконувати деструктивні дії. ІД ЦП ФУНКЦІЯ: НАЗВА 0 181 NtDeviceIoControlFile: повернення Запуск Live dump dir c:\Windows\LiveKernelReports Том на диску C не має мітки. Серійний номер тому: 70F4-B9F6 Каталог c:\Windows\LiveKernelReports 05.11.2019 17:20<DIR>. 05.11.2019 17:20 <DIR>.. 05.11.2019 17:19 <DIR> DTRACE. 05.11.2019 17:20 53 395 456 DTRACE-20191105-1720.dmp. 

Трасування ETW

Трасування ETW є найбільш часто використовуваним інструментом для налагодження в Windows. У попередньому перегляді DTrace у Windows 19H1 ми додали підтримку інструментування відстежених і виявлених подій за допомогою Постачальник ETW.

У 20H1 ми ще більше вдосконалили цю можливість для створення нових подій ETW на льоту з D-скрипту за допомогою ETW_Trace() об'єкта. Це допомагає в ситуаціях, коли наявних подій ETW недостатньо, і ви хочете додати додаткові точки трасування ETW, не змінюючи виробничий код.

Для отримання додаткової інформації про ETW_Trace заклад і постачальник ETW, побачити DTrace ETW.

/* Запуск зразка постачальника GitHub ETW (посилання нижче) для друку події інформації про пам'ять вузла. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d Ідентифікатор розділу: 0. Рахувати: 1. Номер вузла: 1. m_nodeinfo { uint64_t TotalPageCount = 0x1fb558 uint64_t SmallFreePageCount = 0x41 uint64_t SmallZeroPageCount = 0 uint64_t MediumFreePageCount = 0 uint64_t MediumZeroPageCount = 0 uint64_t LargeFreePageCount = 0 uint64_t LargeZeroPageCount = 0 uint64_t HugeFreePageCount = 0 uint64_t HugeZeroPageCount = 0. }

Якщо ви зацікавлені в установці DTrace, подивіться, як це можна зробити тут.

Ви можете завантажити оновлений пакет DTrace MSI звідси.

Ось воно вихідний код і розширені скрипти.

Джерело

РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність системи
Як керувати коментарями Wordpress з мобільного сенсорного пристрою

Як керувати коментарями Wordpress з мобільного сенсорного пристрою

Кілька днів тому мій друг Вадим Стеркін попросив у мене невеликий плагін для керування Wordpress ...

Читати далі

Перейменуйте файли послідовно за допомогою клавіші Tab у Провіднику файлів

Перейменуйте файли послідовно за допомогою клавіші Tab у Провіднику файлів

Раніше ми розповідали, як перейменувати кілька файлів у Провіднику файлів без використання сторон...

Читати далі

Сукупні оновлення для Windows 11 і Windows 10, листопад 2021 року

Сукупні оновлення для Windows 11 і Windows 10, листопад 2021 року

Microsoft випустила набір сукупних оновлень для всіх підтримуваних операційних систем. Як зазвича...

Читати далі