Windows Tips & News

DTrace operētājsistēmā Windows saņem 20H1 atjauninājumus ar ARM64 atbalstu

click fraud protection

DTrace ir populārs atvērtā koda atkļūdošanas un diagnostikas rīks. Sākotnēji tas tika izveidots Solaris un kļuva pieejams operētājsistēmām Linux, FreeBSD, NetBSD un macOS. Microsoft to ir pārnesis uz Windows un pievieno tai daļu atjauninājumu, izmantojot 20H1 funkcijas atjauninājumu.

DTrace ir dinamiska izsekošanas sistēma, kas ļauj administratoram vai izstrādātājam reāllaikā apskatīt sistēmu lietotāja vai kodola režīmā. DTrace ir C stila augsta līmeņa un jaudīga programmēšanas valoda, kas ļauj dinamiski ievietot izsekošanas punktus. Izmantojot šos dinamiski ievietotos izsekošanas punktus, varat filtrēt apstākļus vai kļūdas, rakstīt kodu, lai analizētu bloķēšanas modeļus, atklātu strupceļus utt.

Operētājsistēmā Windows DTrace paplašina notikumu izsekošanu operētājsistēmai Windows (ETW), kas ir statiska un nenodrošina iespēju programmatiski ievietot izsekošanas punktus izpildlaikā.

Visas API un funkcionalitātes, ko izmanto dtrace.sys, ir dokumentēti izsaukumi.

Microsoft ir ieviesis īpašu draiveri operētājsistēmai Windows 10, kas ļauj veikt vairākas sistēmas uzraudzības lomas. Draiveris ir iebūvēts operētājsistēmā Windows 10, sākot ar versiju 1903.

Sākot ar Windows 10 iekšējās versijas 19041.21 versiju, pakalpojumā DTrace ir iekļauti šādi uzlabojumi.

ARM64 priekšskatījums

Jā, tieši tā! DTrace tagad atbalsta ARM64 priekšskatījuma režīmā. ARM64 MSI ir pieejams iepriekš norādītajā lejupielādes saitē.

Jūs varat to izmantot savā Surface Pro X darbojas jaunākā Windows 10 Insider Preview (20H1) versija, sākot ar 19041.21.

DTrace uz Surface Pro X

Lietotāja režīms Stackwalk

Priekšskatījumā stackwalk iespēja programmā DTrace bija ierobežota ar kodola režīmu (steka). Šis atjauninājums pievieno atbalstu lietotāja režīma stackwalk iespējai (ustack). Tāpat kā stack, ustack iekārta ir pilnībā saderīga ar atvērtā koda DTrace specifikāciju. To var izsaukt trīs veidos, norādot kadrus (dziļumu) un izmēru (pagaidām ignorēts) vai nederīgu.

  • Ustack (nframes, izmērs)
  • Ustack (nframes)
  • Ustack ()

Lai gan ustack () var noteikt izsaucošā rāmja adresi, kad zonde tiek aktivizēta, steka kadri netiek pārvērsti simbolos, kamēr DTrace patērētājs nav apstrādājis ustack () darbību lietotāja režīmā. Simbolu lejupielāde var palēnināt izvadi. Tāpēc labāk ir izmantot šo iespēju ar lokāli kešatmiņā saglabātiem simboliem, kā norādīts tālāk.

dtrace -n "profils-1ms /arg1/ {ustack (50, 0); iziet (0);} " -y C:\symbols. dtrace: apraksts 'profile-1ms' atbilst 1 zondei. CPU ID FUNKCIJA: NAME 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`malloc_base+0x44

Tiešraides dump atbalsts

Windows parasti izmanto kaut ko sauc Dzīvo izgāztuve lai palīdzētu ātri diagnosticēt problēmas. Tiešās izgāztuves palīdz novērst problēmas, kas saistītas ar vairākiem procesiem, vai visas sistēmas problēmas bez dīkstāves. 201. gadā DTrace operētājsistēmā Windows var izmantot, lai tvertu reāllaika izdruku no D-skripta iekšpuses, izmantojot lkd() DTrace iekārta. Parasti šo iespēju izmanto, lai instrumentētu kļūdas ceļu (tāpat kā atgriešanas kods norāda uz kļūmi) un tvert reāllaika izgāztuvi tieši bojājuma punktā, lai veiktu uzlaboto diagnostiku. Papildinformāciju par tiešraides dump atbalstu skatiet DTrace Live Dump.

dtrace -wn "syscallreturn { if (arg0 != 0xc0000001UL) { lkd (0); printf(\" Tiešsaistes dump aktivizēšana \n \");iziet (0); }}" dtrace: apraksts 'syscallreturn' atbilst 1411 zondēm. dtrace: ļauj veikt destruktīvas darbības. CPU ID FUNKCIJA: NOSAUKUMS 0 181 NtDeviceIoControlFile: return Aktivizē Live dump dir c:\Windows\LiveKernelReports C diska sējumam nav etiķetes. Sējuma sērijas numurs ir 70F4-B9F6 Katalogs c:\Windows\LiveKernelReports 11.05.2019. 17:20<REŽ>. 05.11.2019 17:20 <REŽ>.. 05.11.2019 17:19 <REŽ> DTRACE. 05.11.2019. 17:20 53 395 456 DTRACE-20191105-1720.dmp. 

ETW izsekošana

ETW izsekošana ir visbiežāk izmantotais rīks atkļūdošanai operētājsistēmā Windows. Programmā DTrace operētājsistēmas Windows 19H1 priekšskatījumā mēs pievienojām atbalstu izsekoto un manifestēto notikumu instrumentēšanai, izmantojot ETW nodrošinātājs.

201. gadā mēs vēl vairāk uzlabojām šo iespēju, lai izveidotu jaunus ETW notikumus, izmantojot D-skriptu, izmantojot ETW_Trace() iekārta. Tas palīdz situācijās, kad esošie ETW notikumi ir nepietiekami un vēlaties pievienot papildu ETW izsekošanas punktus, nemainot ražošanas kodu.

Lai iegūtu vairāk informācijas par ETW_Trace iekārta un ETW nodrošinātājs, skat DTrace ETW.

/* Palaižot GitHub ETW nodrošinātāja paraugu (saite tālāk), lai drukātu mezgla atmiņas informācijas notikumu. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d Sadalījuma ID: 0. Skaits: 1. Mezgla numurs: 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. }

Ja jūs interesē DTrace instalēšana, pārbaudiet, kā to var izdarīt šeit.

Varat lejupielādēt atjaunināto DTrace MSI pakotni no šejienes.

Te tas ir avota kods un uzlaboti skripti.

Avots

S-laima āda no AIMP3

Sergejs Tkačenko ir programmatūras izstrādātājs no Krievijas, kurš uzsāka Winaero 2011. gadā. Ša...

Lasīt vairāk

Pirmizrāde v1.1 apvalks no AIMP3

Sergejs Tkačenko ir programmatūras izstrādātājs no Krievijas, kurš uzsāka Winaero 2011. gadā. Ša...

Lasīt vairāk

Pioneer CT-F1000 āda no AIMP3

Sergejs Tkačenko ir programmatūras izstrādātājs no Krievijas, kurš uzsāka Winaero 2011. gadā. Ša...

Lasīt vairāk