Windows Tips & News

DTrace jest teraz dostępny w systemie Windows

Następna aktualizacja funkcji systemu Windows 10 (aktualizacja 19H1, kwiecień 2019, wersja 1903) będzie zawierać obsługę DTrace, popularnego narzędzia 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.

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 zostanie dołączony do systemu Windows 10 w wersji 1903. Ponadto DTrace obecnie wymaga uruchomienia systemu Windows z włączonym debugerem jądra.

Kod źródłowy przeniesionego narzędzia DTrace jest dostępny na GitHub. Odwiedź stronę „DTrace w systemie Windows” w ramach projektu OpenDTrace na GitHub, aby go zobaczyć.

Skonfiguruj DTrace w Windows 10

Warunki wstępne korzystania z funkcji

  • Insider systemu Windows 10 kompilacja 18342 lub wyżej
  • Dostępne tylko na x64 Windows i przechwytuje informacje o śledzeniu tylko dla procesów 64-bitowych
  • Niejawny program testów systemu Windows jest włączony oraz skonfigurowany z ważnym kontem Windows Insider.
    • Odwiedź Ustawienia->Aktualizacja i zabezpieczenia->Niejawny program testów systemu Windows, aby uzyskać szczegółowe informacje

Instrukcje:

  1. Zestaw konfiguracyjny BCD:
    1. bcdedit /włącz dtrace
    2. Uwaga, musisz ponownie ustawić opcję bcdedit, jeśli uaktualnisz do nowej wersji Insider
  2. Pobierać i zainstaluj pakiet DTrace z Centrum pobierania.
    1. Instaluje to komponenty trybu użytkownika, sterowniki i dodatkowe pakiety funkcji na żądanie, niezbędne do działania DTrace.
  3. Opcjonalnie: zaktualizuj Zmienna środowiskowa PATH aby zawierało C:\Pliki programów\DTrace
    1. ustaw PATH=%PATH%;"C:\Program Files\DTrace"
  4. Ustawiać ścieżka symbolu
    1. Utwórz nowy katalog do lokalnego buforowania symboli. Przykład: mkdir c:\symbole
    2. Ustawić _NT_SYMBOL_PATH=srv*C:\symbole*http://msdl.microsoft.com/download/symbols
    3. DTrace automatycznie pobiera niezbędne symbole z serwera symboli i buforuje do lokalnej ścieżki.
  5. Opcjonalny:Debuger konfiguracji jądra połączenie z maszyną docelową (Łącze MSDN). To jest tylko wymagane, jeśli chcesz śledzić zdarzenia jądra za pomocą FBT lub innych dostawców.
    1. Zauważ, że będziesz musiał wyłączyć Secureboot i Bitlocker na C:, (jeśli są włączone), jeśli chcesz skonfigurować debuger jądra.
  6. Restart maszyna docelowa

Korzystanie z DTrace

  1. Otwórz i wiersz polecenia z podwyższonym poziomem uprawnień.
  2. Wykonaj jedno z następujących poleceń:
    # Podsumowanie wywołania Syscall według programu przez 5 sekund: dtrace -Fn "tick-5sec { exit (0);} syscallentry{ @num[pid, execname] = count();} " # Podsumuj ustawianie/anulowanie programu czasowego przez 3 sekundy: dtrace -Fn "tick-3sec { exit (0);} syscall:: Nt*Timer*:entry { @[probefunc, execname, pid] = count();}" # Zrzuć strukturę jądra procesu systemowego: (wymagane ścieżka symbolu do być ustawionym) dtrace -n "BEGIN{print(*(struct nt`_EPROCESS *) nt`PsInitialSystemProcess);exit (0);}" # Śledzenie ścieżek przez NTFS podczas uruchamiania notepad.exe (wymaga KD a

Komenda dtrace -lvn syscall wyświetli listę wszystkich sond i ich parametrów dostępnych u dostawcy syscall.

Poniżej wymieniono niektórych dostawców dostępnych w systemie Windows i ich instrumenty.

  • wywołanie systemowe – Wywołania systemowe NTOS
  • fbt (Function Boundary Tracing) – Wprowadzanie i zwracanie funkcji jądra
  • pid – Śledzenie procesów w trybie użytkownika. Podobnie jak FBT w trybie jądra, ale pozwala również na oprzyrządowanie dowolnych przesunięć funkcji.
  • etw (Śledzenie zdarzeń dla systemu Windows) — umożliwia definiowanie sond dla ETW Ten dostawca pomaga wykorzystać istniejące oprzyrządowanie systemu operacyjnego w DTrace.
    • Jest to jeden z dodatków, który wprowadziliśmy do DTrace, aby umożliwić mu ujawnienie i uzyskanie wszystkich informacji, które system Windows już dostarcza w ETW.

Więcej przykładowych skryptów odpowiednich dla scenariuszy Windows można znaleźć w tym katalog próbek.

Źródło: Microsoft

Widok zadań Windows 10 Archiwa

Windows 10 to pierwsza wersja systemu Windows, która zawiera natywną funkcję pulpitów wirtualnych...

Czytaj więcej

Windows 10 19H1 jest oficjalnie wersją 1903, może być aktualizacją z kwietnia 2019 r.

Windows 10 19H1 jest oficjalnie wersją 1903, może być aktualizacją z kwietnia 2019 r.

Nazwa nadchodzącej aktualizacji „19h1” do systemu Windows 10 pojawiła się po raz pierwszy. Wygląd...

Czytaj więcej

Włącz lub wyłącz Narrator ogłaszanie klawiszy modyfikujących jako wpisane

Włącz lub wyłącz Narrator ogłaszanie klawiszy modyfikujących jako wpisane

Jak włączyć lub wyłączyć klawisze modyfikujące Narratora ogłaszane podczas wpisywania w systemie ...

Czytaj więcej