Windows Tips & News

DTrace Windowsissa vastaanottaa 20H1-päivityksensä ARM64-tuen avulla

click fraud protection

DTrace on suosittu avoimen lähdekoodin virheenkorjaus- ja diagnostiikkatyökalu. Se on alun perin rakennettu Solarisille, ja se tuli saataville Linuxille, FreeBSD: lle, NetBSD: lle ja macOS: lle. Microsoft on siirtänyt sen Windowsiin ja lisää siihen osan päivityksistä 20H1-ominaisuuspäivityksellä.

DTrace on dynaaminen jäljityskehys, jonka avulla järjestelmänvalvoja tai kehittäjä voi tarkastella järjestelmää reaaliajassa joko käyttäjä- tai ydintilassa. DTracessa on C-tyylinen korkeatasoinen ja tehokas ohjelmointikieli, jonka avulla voit lisätä jäljityspisteitä dynaamisesti. Näiden dynaamisesti lisättyjen jäljityspisteiden avulla voit suodattaa ehtoja tai virheitä, kirjoittaa koodia lukituskuvioiden analysoimiseksi, havaita lukkiutumia jne.

Windowsissa DTrace laajentaa Event Tracing for Windows (ETW) -toimintoa, joka on staattinen eikä tarjoa mahdollisuutta lisätä ohjelmallisesti jäljityspisteitä suorituksen aikana.

Kaikki dtrace.sys: n käyttämät API: t ja toiminnot ovat dokumentoituja kutsuja.

Microsoft on ottanut käyttöön erityisen ajurin Windows 10:lle, joka mahdollistaa useiden järjestelmän valvontatehtävien suorittamisen. Ohjain on rakennettu Windows 10:een versiosta 1903 alkaen.

Windows 10:n sisäpiiriversiosta 19041.21 alkaen DTrace sisältää seuraavat parannukset.

ARM64 esikatselu

Kyllä se on oikein! DTrace tukee nyt ARM64:ää esikatselutilassa. ARM64 MSI on saatavilla yllä mainitusta latauslinkistä.

Voit käyttää sitä omassasi Surface Pro X uusin Windows 10 Insider Preview (20H1) -versio, alkaen 19041.21.

DTrace Surface Pro X: ssä

Käyttäjätila Stackwalk

Esikatselussa DTracen stackwalk-toiminto rajoitettiin ydintilaan (pino). Tämä päivitys lisää tuen usermode stackwalk -toiminnolle (ustack). Kuten pino, ustack-toiminto on täysin yhteensopiva avoimen lähdekoodin DTrace-määrityksen kanssa. Sitä voidaan kutsua kolmella tavalla määrittämällä kehykset (syvyys) ja koko (jätetty huomioimatta toistaiseksi) tai void.

  • Ustack (nframes, koko)
  • Ustack (nframes)
  • Ustack()

Vaikka ustack () voi määrittää kutsuvan kehyksen osoitteen, kun luotain laukeaa, pinokehykset ei käännetä symboleiksi ennen kuin DTracen kuluttaja on käsitellyt ustack () -toiminnon käyttäjätilassa. Symbolien lataus voi hidastaa tulostusta. Siksi on parempi käyttää tätä ominaisuutta paikallisesti välimuistissa olevien symbolien kanssa, kuten alla.

dtrace -n "profiili-1ms /arg1/ {ustack (50, 0); exit (0);} " -y C:\symbols. dtrace: kuvaus 'profiili-1ms' vastasi 1 anturia. CPU ID TOIMINTO: NIMI 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc_base+0x44

Live dump-tuki

Windows käyttää yleensä jotain ns Live dump auttaa diagnosoimaan ongelmia nopeasti. Live dumpit auttavat useisiin prosesseihin liittyvien ongelmien tai järjestelmän laajuisten ongelmien vianmäärityksessä ilman seisokkeja. 20H1:n DTracella Windowsissa voidaan kaapata live dump D-skriptin sisältä käyttämällä lkd() DTrace-palvelu. Tämän toiminnon yleinen käyttötapa on instrumentoida virhepolku (kuten paluukoodi ilmaisee vikaa) ja siepata live dump heti vikakohdassa kehittynyttä diagnostiikkaa varten. Katso lisätietoja live dump -tuesta DTrace Live Dump.

dtrace -wn "syscallreturn { if (arg0 != 0xc0000001UL) { lkd (0); printf(\" Live dumpin laukaiseminen \n \");exit (0); }}" dtrace: kuvaus 'syscallreturn' vastasi 1411 koetinta. dtrace: tuhoavien toimien salliminen. CPU ID TOIMINTO: NIMI 0 181 NtDeviceIoControlFile: return Käynnistää Live dump dir c:\Windows\LiveKernelReports Aseman C asemalla ei ole tunnistetta. Volyymin sarjanumero on 70F4-B9F6 Hakemisto c:\Windows\LiveKernelReports 11.5.2019 17:20<OHJ>. 11.5.2019 klo 17:20 <OHJ>.. 11.5.2019 klo 17:19 <OHJ> DTRACE. 11.5.2019 17:20 53 395 456 DTRACE-20191105-1720.dmp. 

ETW: n jäljitys

ETW: n jäljitys on useimmin käytetty työkalu virheenkorjaukseen Windowsissa. DTracessa Windows 19H1 -esikatselussa lisäsimme tuen jäljitettyjen ja manifestoitujen tapahtumien instrumentointiin käyttämällä ETW-palveluntarjoaja.

20H1 paransimme tätä toimintoa edelleen luodaksemme uusia ETW-tapahtumia lennossa D-skriptin sisältä käyttämällä ETW_Trace() laitos. Tämä auttaa tilanteissa, joissa nykyiset ETW-tapahtumat eivät riitä ja haluat lisätä ETW-jäljityspisteitä muuttamatta tuotantokoodia.

Lisätietoja aiheesta ETW_Trace laitos ja ETW-palveluntarjoaja, katso DTrace ETW.

/* Suoritetaan GitHub ETW -palveluntarjoajan esimerkki (linkki alla) solmumuistin tietotapahtuman tulostamiseksi. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d Osion tunnus: 0. Lasku: 1. Solmun numero: 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. }

Jos olet kiinnostunut DTracen asentamisesta, katso kuinka se voidaan tehdä tässä.

Voit ladata päivitetyn DTrace MSI -paketin täältä.

Tässä se on lähdekoodi ja edistyneitä skriptejä.

Lähde

Aloitusnäytön taustavärin käyttäminen ikkunan värinä Windows 8.1:ssä

Aloitusnäytön taustavärin käyttäminen ikkunan värinä Windows 8.1:ssä

Windows 8.1:ssä voit käyttää työpöydän taustakuvaa aloitusnäytön taustana. Tämä mukautusvaihtoeht...

Lue lisää

IE11:n Uusi välilehti -sivulta piilotettujen sivustojen palauttaminen

IE11:n Uusi välilehti -sivulta piilotettujen sivustojen palauttaminen

Internet Explorerin nykyaikaisissa versioissa IE11/IE10/IE9 saat hyödyllisen Uusi välilehti -sivu...

Lue lisää

Lataa Pin to 8

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi, kun selaat sivustoa. Näistä...

Lue lisää