Windows Tips & News

DTrace для Windows получает обновления 20H1 с поддержкой ARM64

click fraud protection
РЕКОМЕНДУЕМЫЕ: Щелкните здесь, чтобы исправить проблемы с Windows и оптимизировать производительность системы

DTrace - популярный инструмент для отладки и диагностики с открытым исходным кодом. Первоначально он был создан для Solaris и стал доступен для Linux, FreeBSD, NetBSD и macOS. Microsoft перенесла его на 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 на рукеDTrace на Surface Pro X

Пользовательский режим Stackwalk

В предварительной версии возможность обхода стека в DTrace была ограничена режимом ядра (стеком). Это обновление добавляет поддержку функции обхода стека в пользовательском режиме (Устак). Как и стек, средство ustack полностью совместимо со спецификацией DTrace с открытым исходным кодом. Его можно вызвать тремя способами, указав фреймы (глубину) и размер (пока игнорируются) или пустоту.

  • Ustack (nframes, размер)
  • Ustack (nframes)
  • Ustack ()

Хотя ustack () может определить адрес вызывающего кадра при срабатывании зонда, кадры стека будут не преобразовываться в символы до тех пор, пока действие ustack () не будет обработано в пользовательском режиме потребителем DTrace. Загрузка символа может замедлить вывод. Следовательно, лучше использовать это средство с локально кэшированными символами, как показано ниже.

dtrace -n "профиль-1ms / arg1 / {ustack (50, 0); exit (0);} "-y C: \ symbols. dtrace: description 'profile-1ms' соответствует 1 зонд. ID ЦП ФУНКЦИЯ: ИМЯ 0 3802: profile-1ms ntdll`ZwAllocateVirtualMemory + 0x14 ntdll`RtlAllocateHeap + 0x3ded ntdll`RtlAllocateHeap + 0x763 ucrtbase`malloc_base + 0x44

Поддержка живого дампа

Windows обычно использует то, что называется Живой дамп чтобы помочь быстро диагностировать проблемы. Живые дампы помогают устранять неполадки, связанные с несколькими процессами или общесистемными проблемами, без простоев. В 20H1 DTrace в Windows можно использовать для захвата оперативного дампа из D-скрипта с помощью lkd () Средство DTrace. Обычно это средство используется для определения пути ошибки (например, код возврата указывает на сбой) и получения оперативного дампа прямо в точке сбоя для расширенной диагностики. Для получения дополнительной информации о поддержке живого дампа см. Живой дамп DTrace.

dtrace -wn "syscallreturn {если (arg0! = 0xc0000001UL) {lkd (0); printf (\ "Запуск оперативного дампа \ n \"); exit (0); }}" dtrace: description 'syscallreturn' соответствует 1411 зондам. dtrace: разрешает деструктивные действия. ИД ЦП ФУНКЦИЯ: NAME 0 181 NtDeviceIoControlFile: return Запуск каталога динамического дампа c: \ Windows \ LiveKernelReports Том на диске C не имеет метки. Серийный номер тома 70F4-B9F6 Каталог c: \ Windows \ LiveKernelReports 11/05/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

Трассировка трассировки событий Windows это наиболее часто используемый инструмент для отладки в Windows. В предварительную версию DTrace в Windows 19H1 мы добавили поддержку инструментовки отслеживаемых и проявленных событий с помощью Поставщик ETW.

В 20H1 мы дополнительно усовершенствовали эту возможность, чтобы на лету создавать новые события ETW из D-скрипта с помощью ETW_Trace () средство. Это помогает в ситуациях, когда существующих событий трассировки событий Windows недостаточно, и вы хотите добавить дополнительные точки трассировки трассировки событий Windows, не изменяя производственный код.

Для получения дополнительной информации о 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 ID раздела: 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, узнайте, как это можно сделать. здесь.

Вы можете скачать обновленный MSI-пакет DTrace. отсюда.

Вот исходный код а также расширенные скрипты.

Источник

РЕКОМЕНДУЕМЫЕ: Щелкните здесь, чтобы исправить проблемы с Windows и оптимизировать производительность системы
Настройки диспетчера задач резервного копирования в Windows 10

Настройки диспетчера задач резервного копирования в Windows 10

В Windows 8 и Windows 10 есть новое приложение диспетчера задач. Он выглядит совершенно иначе по ...

Читать далее

Запретить Windows 10 синхронизировать пароли между устройствами

Запретить Windows 10 синхронизировать пароли между устройствами

РЕКОМЕНДУЕМЫЕ: Щелкните здесь, чтобы исправить проблемы с Windows и оптимизировать производительн...

Читать далее

Включение режима сканирования экранного диктора в Windows 10

Включение режима сканирования экранного диктора в Windows 10

Как включить режим сканирования экранного диктора в Windows 10Как вы, возможно, уже знаете, Экран...

Читать далее