Windows Tips & News

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

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

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.

Oglas

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.

Dtrace na Windowsima

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.

Sadržajsakriti
ARM64 pregled
Korisnički način Stackwalk
Podrška za dump uživo
ETW Tracing

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 ruciDTrace 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 neuspjeh) i hvatanje 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

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

Priroda HD#27 tema za Windows 8

Ova web stranica koristi kolačiće kako bi poboljšala vaše iskustvo dok se krećete kroz web strani...

Čitaj više

Usluge po procesu Arhivi

Kada se vaše Windows računalo pokrene, mnogi programi se otvaraju pri pokretanju. Neki dugotrajni...

Čitaj više

Kako vidjeti usluge povezane s procesom u sustavu Windows 10

Kako vidjeti usluge povezane s procesom u sustavu Windows 10

2 odgovoraKada se vaše Windows računalo pokrene, mnogi programi se otvaraju pri pokretanju. Neki ...

Čitaj više