Windows Tips & News

DTrace v sistemu Windows prejme svoje posodobitve 20H1 s podporo za ARM64

DTrace je priljubljeno odprtokodno orodje za odpravljanje napak in diagnostiko. Prvotno je bil zgrajen za Solaris in je postal na voljo za Linux, FreeBSD, NetBSD in macOS. Microsoft ga je prenesel v Windows in mu doda del posodobitev s posodobitvijo funkcije 20H1.

DTrace je dinamično ogrodje za sledenje, ki skrbniku ali razvijalcu omogoča vpogled v sistem v realnem času v uporabniškem ali jedrnem načinu. DTrace ima visoko raven in zmogljiv programski jezik v slogu C, ki vam omogoča dinamično vstavljanje točk sledenja. S temi dinamično vstavljenimi točkami sledenja lahko filtrirate pogoje ali napake, pišete kodo za analizo vzorcev zaklepanja, odkrivate zastoje itd.

V sistemu Windows DTrace razširi sledenje dogodkov za Windows (ETW), ki je statično in ne omogoča programskega vstavljanja točk sledenja med izvajanjem.

Vsi API-ji in funkcionalnosti, ki jih uporablja dtrace.sys, so dokumentirani klici.

Microsoft je implementiral poseben gonilnik za Windows 10, ki omogoča izvajanje številnih vlog za spremljanje sistema. Gonilnik je vgrajen v operacijskem sistemu Windows 10 od različice 1903.

Začenši z različico 19041.21 notranjega sistema Windows 10, ima DTrace naslednje izboljšave.

Predogled ARM64

Da, tako je! DTrace zdaj podpira ARM64 v načinu predogleda. ARM64 MSI je na voljo na zgornji povezavi za prenos.

Lahko ga uporabite na svojem Surface Pro X z najnovejšo različico sistema Windows 10 Insider Preview (20H1), začenši z 19041.21.

DTrace na Surface Pro X

Uporabniški način Stackwalk

V predogledu je bila zmogljivost stackwalk v DTrace omejena na način jedra (sklad). Ta posodobitev dodaja podporo za uporabniški način stackwalk (ustack). Tako kot stack je tudi ustack objekt popolnoma združljiv z odprtokodno specifikacijo DTrace. Prikličete ga lahko na tri načine, tako da določite okvirje (globina) in velikost (za zdaj prezrto) ali void.

  • Ustack (nframes, velikost)
  • Ustack (nframes)
  • Ustack()

Medtem ko ustack () lahko določi naslov klicnega okvirja, ko se sproži sonda, bodo okvirji sklada se ne prevede v simbole, dokler uporabnik DTrace ne obdela dejanja ustack () v uporabniškem načinu. Prenos simbola lahko upočasni izhod. Zato je bolje uporabiti to možnost z lokalno predpomnjenimi simboli, kot je spodaj.

dtrace -n "profil-1ms /arg1/ {ustack (50, 0); izhod (0);} " -y C:\symbols. dtrace: opis 'profil-1ms' se ujema z 1 sondo. FUNKCIJA ID CPU-ja: IME 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc44

Podpora za smetišče v živo

Windows običajno uporablja nekaj, kar se imenuje Živo smetišče za pomoč pri hitrem diagnosticiranju težav. Izpisi v živo pomagajo pri odpravljanju težav, ki vključujejo več procesov, ali težave v celotnem sistemu brez izpadov. V 20H1 se lahko DTrace v operacijskem sistemu Windows uporablja za zajemanje izpisa v živo iz skripta D z uporabo lkd() DTrace objekt. Običajen primer uporabe te možnosti je instrumentiranje poti napake (kot je povratna koda označuje napako) in zajemanje izpisa v živo na mestu napake za napredno diagnostiko. Za več informacij o podpori za izpis v živo glejte DTrace Live Dump.

dtrace -wn "syscallreturn { če (arg0 != 0xc0000001UL) { lkd (0); printf(\" Sproži izpis v živo \n \");izhod (0); }}" dtrace: opis 'syscallreturn' se ujema s 1411 sondami. dtrace: omogoča destruktivna dejanja. FUNKCIJA ID CPU-ja: NAME 0 181 NtDeviceIoControlFile: return Sprožitev Živega izpiska dir c:\Windows\LiveKernelReports Zvezek v pogonu C nima oznake. Serijska številka zvezka je 70F4-B9F6 Imenik c:\Windows\LiveKernelReports 05.11.2019 17:20<DIR>. 11/05/2019 17:20 <DIR>.. 11/05/2019 17:19 <DIR> DTRACE. 11/05/2019 17:20 53.395.456 DTRACE-20191105-1720.dmp. 

Sledenje ETW

Sledenje ETW je najpogosteje uporabljeno orodje za odpravljanje napak v sistemu Windows. V predogledu DTrace v sistemu Windows 19H1 smo dodali podporo za instrumentiranje zabeleženih in manifestiranih dogodkov z uporabo Ponudnik ETW.

V 20H1 smo dodatno izboljšali to možnost za ustvarjanje novih dogodkov ETW sproti iz notranjosti D-skripta z uporabo ETW_Trace() objekt. To pomaga v primerih, ko obstoječi dogodki ETW ne zadostujejo in želite dodati dodatne točke sledenja ETW brez spreminjanja produkcijske kode.

Za več informacij o ETW_Trace objekt in ponudnik ETW, glej DTrace ETW.

/* Zagon vzorca ponudnika GitHub ETW (spodnja povezava) za tiskanje informacijskega dogodka o pomnilniku vozlišča. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d ID particije: 0. Število: 1. Številka vozlišča: 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. }

Če vas zanima namestitev DTrace, preverite, kako je to mogoče storiti tukaj.

Prenesete lahko posodobljen paket DTrace MSI od tod.

Tukaj je to izvorno kodo in napredne skripte.

Vir

Windows 10 BSOD bo prikazal QR kode za odpiranje opisa napake

Windows 10 BSOD bo prikazal QR kode za odpiranje opisa napake

Uporabniki so opazili še eno zanimivo lastnost posodobitve za obletnico sistema Windows 10. Ko pr...

Preberi več

Windows 10 21H1 za namizne računalnike bo izdelana 19043

Windows 10 21H1 za namizne računalnike bo izdelana 19043

Kot je bilo predvideno prej, bo Microsoft izdal Windows 10 različico 21H1 v obliki kumulativne po...

Preberi več

Google Chrome 81 je izdan brez podpore za FTP

Google Chrome 81 je izdan brez podpore za FTP

Google Chrome 81 je na voljo za prenos in posodobitev. Najbolj priljubljen spletni brskalnik ima ...

Preberi več