A DTrace már elérhető Windows rendszeren
A Windows 10 következő szolgáltatásfrissítése (19H1, 2019. áprilisi frissítés, 1903-as verzió) tartalmazza majd a DTrace, a népszerű nyílt forráskódú hibakereső és diagnosztikai eszköz támogatását. Eredetileg Solarishoz készült, és elérhetővé vált Linux, FreeBSD, NetBSD és macOS számára. A Microsoft áthelyezte a Windows rendszerre.
Hirdetés
A DTrace egy dinamikus nyomkövetési keretrendszer, amely lehetővé teszi az adminisztrátorok vagy fejlesztők számára, hogy valós idejű betekintést kapjanak a rendszerbe akár felhasználói, akár kernel módban. A DTrace C-stílusú, magas szintű és hatékony programozási nyelvvel rendelkezik, amely lehetővé teszi nyomkövetési pontok dinamikus beszúrását. Ezekkel a dinamikusan beillesztett nyomkövetési pontokkal szűrhet feltételekre vagy hibákra, kódot írhat a zárolási minták elemzéséhez, holtpontok észleléséhez stb.
Windows rendszeren a DTrace kiterjeszti az Event Tracing for Windows (ETW) funkciót, amely statikus, és nem teszi lehetővé a nyomkövetési pontok programozott beszúrását futás közben.
A dtrace.sys által használt összes API és funkció dokumentált hívás.
A Microsoft speciális illesztőprogramot vezetett be a Windows 10 rendszerhez, amely lehetővé teszi számos rendszerfigyelő szerepkör betöltését. Az illesztőprogramot a Windows 10 1903-as verziója tartalmazza. Ezenkívül a DTrace jelenleg megköveteli, hogy a Windows rendszermag-hibakeresővel legyen elindítva.
A portolt DTrace eszköz forráskódja elérhető a GitHubon. Látogassa meg az oldalt "DTrace a Windows rendszeren” az OpenDTrace projekt alatt a GitHubon, hogy megtekinthesse.
A DTrace beállítása a Windows 10 rendszerben
A funkció használatának előfeltételei
- Windows 10 bennfentes építése 18342 vagy magasabb
- Csak a következőn érhető el x64 Windows és csak a 64 bites folyamatokhoz rögzíti a nyomkövetési információkat
-
Windows Insider program van engedélyezve van és konfigurálva érvényes Windows Insider fiókkal
- Részletekért keresse fel a Beállítások->Frissítés és biztonság->Windows Insider Program menüpontot
Utasítás:
-
BCD konfigurációs készlet:
- bcdedit /set dtrace on
- Megjegyzés: ha új Insider buildre frissít, újra be kell állítania a bcdedit beállítást
-
Letöltés és telepítse a DTrace csomagot innen letöltési központ.
- Ez telepíti a DTrace működőképességéhez szükséges felhasználói módú összetevőket, illesztőprogramokat és további igény szerinti szolgáltatáscsomagokat.
- Opcionális: Frissítse a PATH környezeti változó hogy tartalmazza C:\Program Files\DTrace
- set PATH=%PATH%;"C:\Program Files\DTrace"
- Beállít szimbólum útja
- Hozzon létre egy új könyvtárat a szimbólumok helyi gyorsítótárazásához. Példa: mkdir c:\symbols
- Készlet _NT_SYMBOL_PATH=srv*C:\symbols*http://msdl.microsoft.com/download/symbols
- A DTrace automatikusan letölti a szükséges szimbólumokat a szimbólumkiszolgálóról, és gyorsítótárat tárol a helyi elérési útra.
-
Választható:Kernel hibakereső beállítása csatlakozás a célgéphez (MSDN link). Ez csak szükséges, ha FBT vagy más szolgáltatók használatával szeretné nyomon követni a kernel eseményeit.
- Ne feledje, hogy le kell tiltania a Securebootot és a Bitlockert a C:-en (ha engedélyezve van), ha kernel hibakeresőt szeretne beállítani.
- Újraindítás célgép
A DTrace használata
- Nyisson meg egy emelt parancssor.
- Hajtsa végre a következő parancsok egyikét:
# Syscall összegzés programonként 5 másodpercig: dtrace -Fn "tick-5sec { exit (0);} syscallentry{ @num[pid, execname] = count();} " # Összefoglalja az időzítő beállítását/megszakítását 3-ra másodperc: dtrace -Fn "tick-3sec { exit (0);} syscall:: Nt*Timer*:entry { @[probefunc, execname, pid] = count();}" # Rendszer kiíratása A folyamat kernel szerkezete: (megköveteli szimbólum elérési útja beállítva) dtrace -n "BEGIN{print(*(struct nt`_EPROCESS *) nt`PsInitialSystemProcess);exit (0);}" # Útvonalak követése NTFS-en keresztül notepad.exe futtatásakor (KD a szükséges
A parancs dtrace -lvn syscall listázza a syscall szolgáltatótól elérhető összes vizsgálót és paramétereiket.
Az alábbiakban felsorolunk néhány, a Windows rendszeren elérhető szolgáltatót és az általuk használt eszközöket.
- syscall – NTOS rendszerhívások
- fbt (Function Boundary Tracing) – Kernelfüggvény bevitele és visszatérések
- pid – Felhasználói módú folyamatkövetés. Mint a kernel módú FBT, de lehetővé teszi tetszőleges függvényeltolások műszerezését is.
-
etw (Eseménykövetés Windows-hoz) – Lehetővé teszi szondák meghatározását az ETW-hez. Ez a szolgáltató segít a meglévő operációs rendszer-műszerek kihasználásában a DTrace-ben.
- Ez egy olyan kiegészítés, amelyet a DTrace-hez tettünk annak érdekében, hogy felfedje és megszerezze az összes információt, amelyet a Windows már tartalmaz ETW.
További Windows forgatókönyvekhez használható minta szkriptek találhatók ebben minták könyvtár.
Forrás: Microsoft