Windows Tips & News

DTrace w systemie Windows otrzymuje aktualizacje 20H1 z obsługą ARM64

click fraud protection
ZALECANA: Kliknij tutaj, aby rozwiązać problemy z systemem Windows i zoptymalizować wydajność systemu

DTrace to popularne narzędzie do debugowania i diagnostyki typu open source. Został pierwotnie zbudowany dla systemu Solaris i stał się dostępny dla systemów Linux, FreeBSD, NetBSD i macOS. Microsoft przeniósł go do systemu Windows i dodaje do niego porcję aktualizacji dzięki aktualizacji funkcji 20H1.

Reklama

DTrace to dynamiczna platforma śledzenia, która umożliwia administratorowi lub programiście wgląd w system w czasie rzeczywistym w trybie użytkownika lub jądra. DTrace ma wysoki poziom i potężny język programowania w stylu C, który umożliwia dynamiczne wstawianie punktów śledzenia. Korzystając z tych dynamicznie wstawianych punktów śledzenia, możesz filtrować według warunków lub błędów, pisać kod, aby analizować wzorce blokad, wykrywać zakleszczenia itp.

W systemie Windows DTrace rozszerza śledzenie zdarzeń dla systemu Windows (ETW), które jest statyczne i nie zapewnia możliwości programowego wstawiania punktów śledzenia w czasie wykonywania.

Wszystkie interfejsy API i funkcje używane przez dtrace.sys są wywołaniami udokumentowanymi.

Dtrace w systemie Windows

Firma Microsoft zaimplementowała specjalny sterownik dla systemu Windows 10, który umożliwia wykonywanie wielu ról monitorowania systemu. Sterownik jest wbudowany w Windows 10 począwszy od wersji 1903.

Począwszy od Windows 10 Insider build 19041.21, DTrace zawiera następujące ulepszenia.

Zawartośćukryć
Podgląd ARM64
Tryb użytkownika Stackwalk
Obsługa zrzutu na żywo
Śledzenie ETW

Podgląd ARM64

Tak to prawda! DTrace obsługuje teraz ARM64 w trybie podglądu. ARM64 MSI jest dostępny w linku do pobrania wymienionym powyżej.

Możesz go użyć na swoim Surface Pro X uruchamianie najnowszej wersji Windows 10 Insider Preview (20H1), zaczynając od 19041.21.

Dtrace na ramieniuDTrace na Surface Pro X

Tryb użytkownika Stackwalk

W wersji zapoznawczej funkcja Stackwalk w DTrace była ograniczona do trybu jądra (stosu). Ta aktualizacja dodaje obsługę funkcji stosu użytkownika w trybie użytkownika (ustack). Podobnie jak stos, obiekt ustack jest w pełni kompatybilny ze specyfikacją open source DTrace. Można go wywołać na trzy sposoby, określając ramki (głębokość) i rozmiar (na razie ignorowane) lub void.

  • Ustack (nframe, rozmiar)
  • Ustack (nframe)
  • Ustack()

Podczas gdy ustack() może określić adres ramki wywołującej po uruchomieniu sondy, ramki stosu będą: nie być tłumaczone na symbole, dopóki akcja ustack() nie zostanie przetworzona w trybie użytkownika przez konsumenta DTrace. Pobieranie symboli może spowolnić działanie. Dlatego lepiej jest używać tej funkcji z symbolami buforowanymi lokalnie, jak poniżej.

dtrace -n "profil-1ms /arg1/ {stack (50, 0); exit (0);} " -y C:\symbole. dtrace: opis 'profile-1ms' pasował do 1 sondy. FUNKCJA ID procesora: NAZWA 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc_base+0x44

Obsługa zrzutu na żywo

Windows często używa czegoś, co nazywa się Zrzut na żywo aby pomóc szybko zdiagnozować problemy. Zrzuty na żywo pomagają w rozwiązywaniu problemów związanych z wieloma procesami lub problemami w całym systemie bez przestojów. W 20H1 DTrace w systemie Windows może być używany do przechwytywania zrzutu na żywo z wnętrza skryptu D za pomocą lkd() Funkcja DTrace. Typowym przypadkiem użycia tej funkcji jest instrumentacja ścieżki błędu (na przykład kod powrotu wskazuje na awarię) i przechwytywanie zrzutu na żywo bezpośrednio w punkcie awarii w celu zaawansowanej diagnostyki. Aby uzyskać więcej informacji na temat obsługi zrzutu na żywo, zobacz DTrace Live Dump.

dtrace -wn "syscallreturn { if (arg0 != 0xc0000001UL) { lkd (0); printf(\" Wyzwalanie zrzutu na żywo \n \");exit (0); }}" dtrace: opis 'syscallreturn' pasował do 1411 sond. dtrace: zezwalanie na destrukcyjne działania. ID procesora FUNKCJA: NAZWA 0 181 NtDeviceIoControlFile: return Triggering Live dump dir c:\Windows\LiveKernelReports Wolumen na dysku C nie ma etykiety. Numer seryjny woluminu to 70F4-B9F6 Katalog c:\Windows\LiveKernelReports 05.11.2019 17:20<DIR>. 11.05.2019 17:20 <DIR>.. 11.05.2019 17:19 <DIR> ŚLEDZENIE. 11.05.2019 17:20 53 395 456 DTRACE-20191105-1720.dmp. 

Śledzenie ETW

Śledzenie ETW jest najczęściej używanym narzędziem do debugowania w systemie Windows. W DTrace w wersji zapoznawczej systemu Windows 19H1 dodaliśmy obsługę instrumentacji zdarzeń tracelogged i manifestowanych przy użyciu Dostawca ETW.

W 20H1 dodatkowo ulepszyliśmy tę funkcję, aby tworzyć nowe wydarzenia ETW w locie z wnętrza skryptu D za pomocą ETW_Trace() obiekt. Pomaga to w sytuacjach, w których istniejące zdarzenia ETW są niewystarczające i chcesz dodać dodatkowe punkty śledzenia ETW bez modyfikowania kodu produkcyjnego.

Więcej informacji na temat ETW_Trace obiekt i dostawca ETW, zobaczyć DŚledź ETW.

/* Uruchomienie przykładowego dostawcy usługi GitHub ETW (link poniżej) w celu wydrukowania zdarzenia informacji o pamięci węzła. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d Identyfikator partycji: 0. Liczba: 1. Numer węzła: 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 Ogromny ZeroPageCount = 0. }

Jeśli jesteś zainteresowany instalacją DTrace, sprawdź jak można to zrobić tutaj.

Możesz pobrać zaktualizowany pakiet DTrace MSI stąd.

Tutaj jest to kod źródłowy oraz zaawansowane skrypty.

Źródło

ZALECANA: Kliknij tutaj, aby rozwiązać problemy z systemem Windows i zoptymalizować wydajność systemu
Chrome 77 wyszedł z następującym dziennikiem zmian

Chrome 77 wyszedł z następującym dziennikiem zmian

Zostaw odpowiedźGoogle wydaje nową wersję swojej przeglądarki Chrome. Wersja 77 jest teraz dostęp...

Czytaj więcej

Jak zdiagnozować pamięć za pomocą narzędzia do diagnostyki pamięci w systemie Windows 10?

Jak zdiagnozować pamięć za pomocą narzędzia do diagnostyki pamięci w systemie Windows 10?

Pamięć komputera (RAM) jest bardzo ważnym elementem. Jeśli układ pamięci RAM ulegnie awarii lub w...

Czytaj więcej

Włącz blokowanie przekierowań w Google Chrome

Włącz blokowanie przekierowań w Google Chrome

Dzięki Chrome 64 Google zamierza zwiększyć bezpieczeństwo przeglądarki, blokując niechciane przek...

Czytaj więcej