Windows Tips & News

Το DTrace στα Windows λαμβάνει τις ενημερώσεις του 20H1 με υποστήριξη ARM64

click fraud protection
ΠΡΟΤΕΙΝΕΤΑΙ: Κάντε κλικ εδώ για να διορθώσετε προβλήματα των Windows και να βελτιστοποιήσετε την απόδοση του συστήματος

Το DTrace είναι το δημοφιλές εργαλείο εντοπισμού σφαλμάτων και διάγνωσης ανοιχτού κώδικα. Κατασκευάστηκε αρχικά για το Solaris και έγινε διαθέσιμο για Linux, FreeBSD, NetBSD και macOS. Η Microsoft το έχει μεταφέρει στα Windows και προσθέτει ένα τμήμα ενημερώσεων σε αυτό με την ενημέρωση δυνατοτήτων 20H1.

Διαφήμιση

Το DTrace είναι ένα δυναμικό πλαίσιο ανίχνευσης που επιτρέπει σε έναν διαχειριστή ή προγραμματιστή να βλέπει ένα σύστημα σε πραγματικό χρόνο είτε σε λειτουργία χρήστη είτε σε λειτουργία πυρήνα. Το DTrace έχει μια υψηλού επιπέδου και ισχυρή γλώσσα προγραμματισμού σε στυλ C που σας επιτρέπει να εισάγετε δυναμικά σημεία ίχνους. Χρησιμοποιώντας αυτά τα δυναμικά εισαγόμενα σημεία ίχνους, μπορείτε να φιλτράρετε τις συνθήκες ή τα σφάλματα, να γράψετε κώδικα για να αναλύσετε μοτίβα κλειδώματος, να εντοπίσετε αδιέξοδα κ.λπ.

Στα Windows, το DTrace επεκτείνει την ανίχνευση συμβάντων για Windows (ETW), η οποία είναι στατική και δεν παρέχει τη δυνατότητα εισαγωγής σημείων παρακολούθησης μέσω προγραμματισμού κατά το χρόνο εκτέλεσης.

Όλα τα API και οι λειτουργίες που χρησιμοποιούνται από το dtrace.sys είναι τεκμηριωμένες κλήσεις.

Dtrace στα Windows

Η Microsoft έχει εφαρμόσει ένα ειδικό πρόγραμμα οδήγησης για τα Windows 10 που επιτρέπει την εκτέλεση ορισμένων ρόλων παρακολούθησης συστήματος. Το πρόγραμμα οδήγησης είναι ενσωματωμένο στα Windows 10 ξεκινώντας από την έκδοση 1903.

Ξεκινώντας από την εσωτερική έκδοση 19041.21 των Windows 10, το DTrace συνοδεύεται από τις ακόλουθες βελτιώσεις.

Περιεχόμενακρύβω
Προεπισκόπηση ARM64
Λειτουργία χρήστη Stackwalk
Υποστήριξη ζωντανής χωματερής
ETW Tracing

Προεπισκόπηση ARM64

Ναι, σωστά! Το DTrace υποστηρίζει τώρα το ARM64 σε λειτουργία προεπισκόπησης. Το ARM64 MSI είναι διαθέσιμο στον σύνδεσμο λήψης που αναφέρεται παραπάνω.

Μπορείτε να το χρησιμοποιήσετε στο δικό σας Surface Pro X εκτέλεση της τελευταίας έκδοσης των Windows 10 Insider Preview (20H1), ξεκινώντας από 19041.21.

Dtrace στο βραχίοναDTrace στο Surface Pro X

Λειτουργία χρήστη Stackwalk

Στην προεπισκόπηση, η εγκατάσταση στοίβαξης στο DTrace περιορίστηκε στη λειτουργία πυρήνα (στοίβα). Αυτή η ενημέρωση προσθέτει υποστήριξη για τη δυνατότητα στοίβαξης λειτουργίας χρήστη (στοίβα). Όπως η στοίβα, η εγκατάσταση ustack είναι πλήρως συμβατή με την προδιαγραφή DTrace ανοιχτού κώδικα. Μπορεί να γίνει επίκληση με τρεις τρόπους, καθορίζοντας πλαίσια (βάθος) και μέγεθος (προς το παρόν αγνοείται) ή άκυρα.

  • Ustack (nframes, μέγεθος)
  • Ustack (nframes)
  • Ustack()

Ενώ το ustack () μπορεί να καθορίσει τη διεύθυνση του καλούντος πλαισίου όταν ενεργοποιείται ο ανιχνευτής, τα πλαίσια στοίβας θα το κάνουν να μην μεταφραστεί σε σύμβολα έως ότου η ενέργεια ustack () υποβληθεί σε επεξεργασία σε λειτουργία χρήστη από τον καταναλωτή DTrace. Η λήψη συμβόλου μπορεί να επιβραδύνει την έξοδο. Ως εκ τούτου, είναι καλύτερο να χρησιμοποιήσετε αυτήν τη δυνατότητα με τοπικά αποθηκευμένα σύμβολα όπως παρακάτω.

dtrace -n "profile-1ms /arg1/ {ustack (50, 0); έξοδος (0);} " -y C:\symbols. dtrace: περιγραφή 'profile-1ms' αντιστοιχεί σε 1 probe. ΛΕΙΤΟΥΡΓΙΑ CPU ID: NAME 0 3802 :profile-1ms ntdll`ZwAllocateVirtualMemory+0x14 ntdll`RtlAllocateHeap+0x3ded ntdll`RtlAllocateHeap+0x763 ucrtbase`0x4_bas

Υποστήριξη ζωντανής χωματερής

Τα Windows χρησιμοποιούν συνήθως κάτι που ονομάζεται Ζωντανή χωματερή για να βοηθήσει στη γρήγορη διάγνωση προβλημάτων. Οι ζωντανές απορρίψεις βοηθούν στην αντιμετώπιση προβλημάτων που αφορούν πολλαπλές διεργασίες ή ζητήματα σε όλο το σύστημα χωρίς διακοπές λειτουργίας. Το 20H1, το DTrace στα Windows μπορεί να χρησιμοποιηθεί για να καταγράψει μια ζωντανή ένδειξη μέσα από ένα script D χρησιμοποιώντας το lkd() Εγκατάσταση DTrace. Μια συνηθισμένη περίπτωση χρήσης αυτής της εγκατάστασης είναι η διαδρομή σφάλματος οργάνου (όπως ο κωδικός επιστροφής υποδηλώνει αποτυχία) και η καταγραφή μιας ζωντανής ένδειξης ακριβώς στο σημείο αστοχίας για προηγμένα διαγνωστικά. Για περισσότερες πληροφορίες σχετικά με την υποστήριξη live dump, βλ DTrace Live Dump.

dtrace -wn "syscallreturn { if (arg0 != 0xc0000001UL) { lkd (0); printf(\" Triggering Live dump \n \");exit (0); }}" dtrace: η περιγραφή 'syscallreturn' αντιστοιχούσε σε 1411 ανιχνευτές. dtrace: επιτρέποντας καταστροφικές ενέργειες. ΛΕΙΤΟΥΡΓΙΑ CPU ID: NAME 0 181 NtDeviceIoControlFile: επιστροφή Ενεργοποίηση Live dump dir c:\Windows\LiveKernelReports Ο τόμος στη μονάδα δίσκου C δεν έχει ετικέτα. Ο σειριακός αριθμός τόμου είναι 70F4-B9F6 Κατάλογος c:\Windows\LiveKernelReports 05/11/2019 05:20 μ.μ.<ΔΙΕΥΘ>. 11/05/2019 05:20 μ.μ <ΔΙΕΥΘ>.. 05/11/2019 05:19 μ.μ <ΔΙΕΥΘ> DTRACE. 11/05/2019 05:20 PM 53.395.456 DTRACE-20191105-1720.dmp. 

ETW Tracing

Ανίχνευση ETW είναι το πιο συχνά χρησιμοποιούμενο εργαλείο για τον εντοπισμό σφαλμάτων στα Windows. Στην προεπισκόπηση του DTrace στα Windows 19H1, προσθέσαμε υποστήριξη για όργανο καταγραφής και εκδηλώσεων συμβάντων χρησιμοποιώντας το πάροχος ETW.

Το 20H1, βελτιώσαμε περαιτέρω αυτήν τη δυνατότητα για να δημιουργήσουμε νέα συμβάντα ETW on the fly μέσα από ένα σενάριο D χρησιμοποιώντας το ETW_Trace() ευκολία. Αυτό βοηθά σε περιπτώσεις όπου τα υπάρχοντα συμβάντα ETW είναι ανεπαρκή και θα θέλατε να προσθέσετε επιπλέον σημεία ίχνους ETW χωρίς να τροποποιήσετε τον κώδικα παραγωγής.

Για περισσότερες πληροφορίες σχετικά με ETW_Trace εγκατάσταση και πάροχος ETW, βλέπω DTrace ETW.

/* Εκτέλεση του δείγματος παρόχου GitHub ETW (σύνδεσμος παρακάτω) για την εκτύπωση συμβάντος πληροφοριών μνήμης κόμβου. https://github.com/microsoft/DTrace-on-Windows/blob/master/samples/windows/etw/numamemstats.d. */ dtrace -qs numamemstats.d Αναγνωριστικό διαμερίσματος: 0. Καταμέτρηση: 1. Αριθμός κόμβου: 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. }

Εάν ενδιαφέρεστε να εγκαταστήσετε το DTrace, δείτε πώς μπορεί να γίνει εδώ.

Μπορείτε να κάνετε λήψη του ενημερωμένου πακέτου DTrace MSI από εδώ.

Ορίστε πηγαίος κώδικας και προηγμένα σενάρια.

Πηγή

ΠΡΟΤΕΙΝΕΤΑΙ: Κάντε κλικ εδώ για να διορθώσετε προβλήματα των Windows και να βελτιστοποιήσετε την απόδοση του συστήματος
Sergey Tkachenko, συγγραφέας στο Winaero

Sergey Tkachenko, συγγραφέας στο Winaero

Το StarterDesktopSlideShow είναι πρόγραμμα αλλαγής ταπετσαρίας για Windows 7 Starter.Όπως γνωρίζε...

Διαβάστε περισσότερα

Sergey Tkachenko, συγγραφέας στο Winaero

Αυτός ο ιστότοπος χρησιμοποιεί cookies για να βελτιώσει την εμπειρία σας κατά την πλοήγηση στον ι...

Διαβάστε περισσότερα

Sergey Tkachenko, συγγραφέας στο Winaero

Ξεκινώντας από το στιγμιότυπο προγραμματιστή 2022.6, το πρόγραμμα περιήγησης Vivaldi σάς επιτρέπε...

Διαβάστε περισσότερα