Windows Tips & News

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

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.

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.

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.

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 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 zrzutów 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

Poprawka: ikony obszaru powiadomień (taca systemowa) są zepsute w systemie Windows 10

Poprawka: ikony obszaru powiadomień (taca systemowa) są zepsute w systemie Windows 10

Po pewnym czasie korzystania z systemu Windows 10 i instalowaniu/odinstalowywaniu programów, może...

Czytaj więcej

Poprawka: ikony obszaru powiadomień (taca systemowa) są zepsute w systemie Windows 10

Poprawka: ikony obszaru powiadomień (taca systemowa) są zepsute w systemie Windows 10

ZALECANA: Kliknij tutaj, aby rozwiązać problemy z systemem Windows i zoptymalizować wydajność sys...

Czytaj więcej

Zdobądź klasyczny Microsoft Plus! motywy dla Windows 10, Windows 8 i Windows 7

Zdobądź klasyczny Microsoft Plus! motywy dla Windows 10, Windows 8 i Windows 7

Jeśli korzystasz z systemu Windows od Windows 95 lub Windows 98, być może pamiętasz Microsoft Plu...

Czytaj więcej