A Windows rendszeren futó DTrace megkapja a 20H1 frissítéseit az ARM64 támogatással
A DTrace a népszerű nyílt forráskódú hibakereső és diagnosztikai eszköz. 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, és a frissítések egy részét hozzáadja a 20H1 funkciófrissítéssel.
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őprogram az 1903-as verziótól kezdődően a Windows 10 rendszerbe épül.
A Windows 10 19041.21-es bennfentes buildjétől kezdve a DTrace a következő fejlesztésekkel érkezik.
ARM64 előnézet
Igen ez így van! A DTrace mostantól támogatja az ARM64-et előnézeti módban. Az ARM64 MSI a fent felsorolt letöltési linken érhető el.
Használhatod magadon Surface Pro X a Windows 10 Insider Preview (20H1) legújabb verzióját futtatja, kezdve 19041.21.
DTrace a Surface Pro X-en
Stackwalk felhasználói mód
Az előnézetben a DTrace stackwalk szolgáltatása Kernel módra (verem) korlátozódott. Ez a frissítés támogatja a felhasználói módú stackwalk szolgáltatást (ustack). A veremhez hasonlóan az ustack szolgáltatás is teljes mértékben kompatibilis a nyílt forráskódú DTrace specifikációval. Háromféleképpen hívható meg a keretek (mélység) és a méret (egyelőre figyelmen kívül hagyva) vagy a void megadásával.
- Ustack (nframe, méret)
- Ustack (nframe)
- Ustack()
Míg az ustack () képes meghatározni a hívó keret címét, amikor a szonda elindul, a verem keretek nem lehet szimbólumokká fordítani, amíg a DTrace fogyasztó felhasználói módban fel nem dolgozza az ustack () műveletet. A szimbólumletöltés lelassíthatja a kimenetet. Ezért jobb, ha ezt a lehetőséget helyi gyorsítótárban lévő szimbólumokkal használja, mint az alábbiakban.
dtrace -n "profile-1ms /arg1/ {ustack (50, 0); kilépés (0);} " -y C:\symbols. dtrace: a leírás 'profile-1ms' 1 szondának felel meg. CPU ID FUNKCIÓ: NAME 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc_base+0x44
Élő dump támogatás
A Windows általában valami ún Élő dump hogy segítsen gyorsan diagnosztizálni a problémákat. Az élő dumpok segítenek a több folyamatot érintő problémák vagy a rendszerszintű problémák hibaelhárításában állásidő nélkül. 20H1-ben a DTrace Windows rendszeren használható élő dump rögzítésére egy D-script belsejéből a lkd() DTrace létesítmény. Ennek a lehetőségnek a gyakori felhasználási esete a hibaút műszerezése (mint a visszatérési kód hibát jelez), és egy élő dump rögzítése közvetlenül a hibaponton a fejlett diagnosztika érdekében. Az élő dump támogatással kapcsolatos további információkért lásd: DTrace Live Dump.
dtrace -wn "syscallreturn { if (arg0 != 0xc0000001UL) { lkd (0); printf(\" Élő dump kiváltása \n \");exit (0); }}" dtrace: a 'syscallreturn' leírás 1411 próbának felel meg. dtrace: destruktív cselekvések engedélyezése. CPU ID FUNKCIÓ: NÉV 0 181 NtDeviceIoControlFile: return Élő dump dir c:\Windows\LiveKernelReports aktiválása A C meghajtó kötetének nincs címke. A kötet sorozatszáma: 70F4-B9F6 A c:\Windows\LiveKernelReports könyvtára 2019.11.05. 17:20<DIR>. 2019. 11. 05. 17:20 <DIR>.. 2019. 11. 05. 17:19 <DIR> DTRACE. 2019. 11. 05. 17:20 53 395 456 DTRACE-20191105-1720.dmp.
ETW Tracing
ETW nyomkövetés a Windows rendszerben leggyakrabban használt hibakeresési eszköz. A DTrace a Windows 19H1 előzetes verziójában támogatást adtunk a nyomkövetési és megnyilvánult események műszerezéséhez a ETW szolgáltató.
20H1-ben továbbfejlesztettük ezt a lehetőséget, hogy új ETW eseményeket hozzunk létre menet közben egy D-script belsejéből a ETW_Trace() létesítmény. Ez olyan helyzetekben segít, amikor a meglévő ETW-események nem elegendőek, és további ETW-nyomkövetési pontokat szeretne hozzáadni a termelési kód módosítása nélkül.
További információért a ETW_Trace létesítmény és ETW szolgáltató, lát DTrace ETW.
/* A GitHub ETW-szolgáltató mintájának futtatása (alábbi hivatkozás) a csomópontmemória-információs esemény nyomtatásához. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d Partícióazonosító: 0. Szám: 1. Csomópont száma: 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. }
Ha érdekli a DTrace telepítése, nézze meg, hogyan lehet ezt megtenni itt.
Letöltheti a frissített DTrace MSI csomagot innen.
Itt van forráskód és fejlett szkriptek.
Forrás