Windows Tips & News

DTrace na Windowsima prima svoja ažuriranja 20H1 s podrškom za ARM64

click fraud protection

DTrace je popularan alat za otklanjanje pogrešaka i dijagnostiku otvorenog koda. Izvorno je napravljen za Solaris, a postao je dostupan za Linux, FreeBSD, NetBSD i macOS. Microsoft ga je prenio na Windows i dodaje mu dio ažuriranja s ažuriranjem značajke 20H1.

DTrace je dinamički okvir za praćenje koji administratoru ili programeru omogućuje uvid u sustav u stvarnom vremenu u korisničkom ili kernel načinu rada. DTrace ima visoku razinu i moćan programski jezik u C stilu koji vam omogućuje dinamičko umetanje točaka praćenja. Koristeći ove dinamički umetnute točke praćenja, možete filtrirati uvjete ili pogreške, napisati kod za analizu uzoraka zaključavanja, otkriti zastoje itd.

U sustavu Windows, DTrace proširuje praćenje događaja za Windows (ETW) koje je statično i ne pruža mogućnost programskog umetanja točaka praćenja tijekom izvođenja.

Svi API-ji i funkcionalnosti koje koristi dtrace.sys su dokumentirani pozivi.

Microsoft je implementirao poseban upravljački program za Windows 10 koji omogućuje obavljanje niza uloga nadzora sustava. Upravljački program je ugrađen u Windows 10 počevši od verzije 1903.

Počevši od insajderske verzije sustava Windows 10 19041.21, DTrace dolazi sa sljedećim poboljšanjima.

ARM64 pregled

Da, tako je! DTrace sada podržava ARM64 u načinu pregleda. ARM64 MSI dostupan je na gore navedenoj poveznici za preuzimanje.

Možete ga koristiti na svom Surface Pro X pokreće najnoviju verziju Windows 10 Insider Preview (20H1), počevši od 19041.21.

DTrace na Surface Pro X

Korisnički način Stackwalk

U pretpregledu, mogućnost stackwalk-a u DTraceu bila je ograničena na način rada jezgre (stog). Ovo ažuriranje dodaje podršku za stackwalk u korisničkom načinu rada (ustack). Kao i stog, ustack facility je potpuno kompatibilan sa open source specifikacijom DTrace. Može se pozvati na tri načina navođenjem okvira (dubina) i veličine (za sada zanemareno) ili void.

  • Ustack (nframes, veličina)
  • Ustack (nframes)
  • Ustack()

Dok ustack () može odrediti adresu pozivajućeg okvira kada se sonda aktivira, okviri steka će neće biti prevedena u simbole sve dok DTrace potrošač ne obradi akciju ustack () u korisničkom načinu. Preuzimanje simbola može usporiti izlaz. Stoga je bolje koristiti ovu mogućnost s lokalno predmemoriranim simbolima kao što je dolje.

dtrace -n "profil-1ms /arg1/ {ustack (50, 0); izlaz (0);} " -y C:\simboli. dtrace: opis 'profil-1ms' odgovara 1 sondi. FUNKCIJA ID CPU-a: NAME 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc44

Podrška za dump uživo

Windows obično koristi nešto tzv Živo smetlište za brzo dijagnosticiranje problema. Live dumpovi pomažu u rješavanju problema koji uključuju više procesa ili probleme u cijelom sustavu bez zastoja. U 20H1, DTrace na Windowsima može se koristiti za snimanje live dump iz D-skripte pomoću lkd() DTrace objekt. Uobičajeni slučaj upotrebe ove mogućnosti je instrumentiranje putanje pogreške (kao što je povratni kod označava kvar) i snimanje live dump točno na točki kvara za naprednu dijagnostiku. Za više informacija o podršci za live dump pogledajte DTrace Live Dump.

dtrace -wn "syscallreturn { if (arg0 != 0xc0000001UL) { lkd (0); printf(\" Pokretanje live dump \n \");exit (0); }}" dtrace: opis 'syscallreturn' odgovara 1411 sondi. dtrace: dopušta destruktivne radnje. CPU ID FUNKCIJA: NAZIV 0 181 NtDeviceIoControlFile: povratak Pokretanje Live dump dir c:\Windows\LiveKernelReports Volumen u pogonu C nema oznaku. Serijski broj svezaka je 70F4-B9F6 Direktorij c:\Windows\LiveKernelReports 05.11.2019. 17:20<DIR>. 11/05/2019 17:20 sati <DIR>.. 11/05/2019 17:19 sati <DIR> DTRACE. 5.11.2019. 17:20 53.395.456 DTRACE-20191105-1720.dmp. 

ETW Tracing

ETW praćenje je najčešće korišteni alat za otklanjanje pogrešaka u sustavu Windows. U DTrace u pregledu Windows 19H1 dodali smo podršku za instrumentiranje praćenih i manifestiranih događaja pomoću ETW pružatelj usluga.

U 20H1 dodatno smo poboljšali ovu mogućnost za stvaranje novih ETW događaja u hodu iz D-skripte koristeći ETW_Trace() objektu. To pomaže u situacijama kada su postojeći ETW događaji nedostatni i želite dodati dodatne točke praćenja ETW bez mijenjanja proizvodnog koda.

Za više informacija o ETW_Trace objekt i ETW pružatelj, vidjeti DTrace ETW.

/* Pokretanje uzorka pružatelja usluge GitHub ETW (veza ispod) za ispis događaja informacija o memoriji čvora. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d ID particije: 0. Broji: 1. Broj čvora: 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 OgromanZeroPageCount = 0. }

Ako ste zainteresirani za instalaciju DTracea, provjerite kako se to može učiniti ovdje.

Možete preuzeti ažurirani DTrace MSI paket odavde.

Evo ga izvorni kod i napredne skripte.

Izvor

Microsoft uvodi oznake i skice Skype poruka, Split View i još mnogo toga

Microsoft uvodi oznake i skice Skype poruka, Split View i još mnogo toga

Nakon testiranja verzija Insider Previewa, Microsoft je danas objavio niz novih značajki u stabil...

Čitaj više

Kako mapirati mrežni pogon u sustavu Windows 10

Kako mapirati mrežni pogon u sustavu Windows 10

PREPORUČENO: Kliknite ovdje da biste riješili probleme sa sustavom Windows i optimizirali perform...

Čitaj više

POPRAVAK: Windows se ne povezuje ponovno s mapiranim mrežnim pogonima

POPRAVAK: Windows se ne povezuje ponovno s mapiranim mrežnim pogonima

PREPORUČENO: Kliknite ovdje da biste riješili probleme sa sustavom Windows i optimizirali perform...

Čitaj više