strace

Screenshot Λογισμικό:
strace
Στοιχεία Λογισμικού:
Εκδοχή: 4.19 επικαιροποιημένο
Ανεβάστε ημερομηνία: 23 Nov 17
Προγραμματιστής: Dmitry V. Levin, Roland McGrath and Wi...
Άδεια: Δωρεάν
Δημοτικότητα: 72

Rating: 4.5/5 (Total Votes: 2)

Το

strace είναι ένα λογισμικό ανοιχτού κώδικα και ελεύθερης διανομής που έχει σχεδιαστεί για προγραμματιστές και διαχειριστές συστημάτων, παρέχοντας έναν ιχνηλάτη κλήσεων συστήματος που έχει υλοποιηθεί στο C και έχει σχεδιαστεί για να λειτουργεί αποκλειστικά υπό λειτουργικά συστήματα GNU / Linux.

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

Το εργαλείο μπορεί να χρησιμοποιηθεί από τους διαγνωστικούς, τους υπεύθυνους αντιμετώπισης προβλημάτων, καθώς και από τους διαχειριστές συστημάτων που θέλουν μια ανεκτίμητη λύση για την επίλυση προβλημάτων με προγράμματα κλειστής πηγής. Είναι γραμμένο από τους Dmitry V. Levin, Roland McGrath και Wichert Akkerman.


Επιλογές γραμμής εντολών

Όπως κάθε άλλο λογισμικό γραμμής εντολών, το strace προσφέρει μια μεγάλη ποικιλία επιλογών γραμμής εντολών που επιτρέπουν στον χρήστη να χρησιμοποιήσει εύκολα όλες τις λειτουργίες και τις λειτουργίες του προκειμένου να επιτύχει τα καθήκοντά του. Όλες οι επιλογές της γραμμής εντολών μπορούν να προβληθούν με μια ματιά τρέχοντας το & lsquo; strace --help & rsquo; εντολή.

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

Επιπλέον, θα μπορείτε να στέλνετε πληροφορίες ανίχνευσης σε ένα συγκεκριμένο αρχείο αντί για stderr, για να ρυθμίσετε τις επιβαρύνσεις για την παρακολούθηση των syscalls σε ένα overhead usecs, για να ορίσετε ένα αρχείο PID για τη διαδικασία παρακολούθησης, για να περιορίσετε το μήκος των συμβολοσειρών εκτύπωσης για να διαγράψετε χαρακτήρες, να εκτελέσετε εντολές ως όνομα χρήστη που ορίσατε setgid ή / και setuid και να αποσυνδεθείτε σε ένα συγκεκριμένο σύστημα.


Ξεκινώντας με το strace

Το strace διανέμεται μόνο ως tarball πηγής, αλλά μπορεί εύκολα να εγκατασταθεί σε πολλές διανομές Linux από τα κύρια αποθετήρια λογισμικού. Για να το εγκαταστήσετε από πηγές, απλώς κατεβάστε την πιο πρόσφατη έκδοση από το Softoware, αποθηκεύστε το αρχείο σε μια θέση της επιλογής σας και αποσυσκευάστε το.

Ανοίξτε μια εφαρμογή Terminal, μεταβείτε στη θέση των αρχείων αρχειοθέτησης (π.χ. cd /home/softoware/strace-4.9), εκτελέστε το ./configure && make & rsquo; για να ρυθμίσετε και να συντάξετε το strace, και στη συνέχεια να εκτελέσετε το & lsquo; make install & rsquo; εντολή ως root ή το & lsquo; sudo make install & rsquo; ως προνομιούχος χρήστης για να εγκαταστήσει το σύστημα του strace.

Τι είναι νέο σε αυτή την έκδοση:

  • Βελτιώσεις:
  • Προστέθηκε η επιλογή -για να εκτυπώσετε πληροφορίες πρωτοκόλλου και διεύθυνσης που σχετίζονται με περιγραφές υποδοχής.
  • Επέκταση & quot; -e read = set & quot; και "-ε γράφουν = σύνολο" επιλογές για την κάλυψη των εντολών sendmsg, recvmsg, sendmmsg και recvmmsg.
  • Εφαρμόστηκε πλήρης αποκωδικοποίηση 32-bit των εντολών ioctl (διευθύνσεις Debian bug # 692913 και bug Fedora # 902788).
  • Εφαρμόστηκε υποστήριξη PTRACE_GETREGS API στο ia64.
  • Εφαρμόστηκε υποστήριξη PTRACE_GETREGS API σε mips.
  • Εφαρμόστηκε υποστήριξη PTRACE_GETREGSET API στο s390 / s390x.
  • Εφαρμογή αποκωδικοποίησης των συστημάτων getrandom και seccomp.
  • Εφαρμόστηκε πλήρης αποκωδικοποίηση των συνόλων δυνατοτήτων 64 bit
  • Εφαρμόστηκε αποκωδικοποίηση όλων των εντολών prctl.
  • Εφαρμογή αποκωδικοποίησης παραμετροποιημένων εντολών ioctl.
  • Εφαρμογή αποκωδικοποίησης των εντολών evdev ioctl.
  • Εφαρμογή αποκωδικοποίησης των εντολών v4l ioctl.
  • Εφαρμογή αποκωδικοποίησης των εντολών SG_IO v4 ioctl.
  • Εφαρμογή αποκωδικοποίησης των εντολών FIFREEZE / FITHAW / FITRIM ioctl.
  • Εφαρμογή αποκωδικοποίησης των φλογών FALLOC_FL_ *.
  • Εφαρμογή αποκωδικοποίησης της μάσκας σήματος rt_sigreturn στα aarch64, x32 και x86_64.
  • Ενισχυμένος αποκωδικοποιητής υποδοχών για υποστήριξη υποδοχών bluetooth.
  • Ενισχυμένη αποκωδικοποίηση των εντολών ioctl που δεν περιλαμβάνονται στη λίστα.
  • Ενισχυμένη αποκωδικοποίηση του συστήματος syscall και του συστήματος shutdown.
  • Ενισχυμένη αποκωδικοποίηση του συστήματος sysinfo.
  • Ενισχυμένη αποκωδικοποίηση του struct cmsghdr.
  • Ενισχυμένη αποκωδικοποίηση της κατάστασης αναμονής.
  • Ενισχυμένη υποστήριξη aio σε αρχιτεκτονικές μη-x86 χρησιμοποιώντας εξωτερική έκδοση libaio.h
  • Προστέθηκε O_TMPFILE στη λίστα αναγνωρισμένων σημαδιών ανοιχτής λειτουργίας.
  • Ενημέρωση της λίστας των σταθερών τύπου συστήματος αρχείων που χρησιμοποιείται για την αποκωδικοποίηση των οικογενειών syscalls.
  • Ενημερωμένες λίστες των σταθερών CAP_ *, PR_ *, PTRACE_ *, SCHED_ *, SO_ *, SOL_ *, SWAP_FLAG_ * και TFD_ *.
  • Ενημερωμένοι κατάλογοι σταθερών σήματος από το Linux 3.19.
  • Ενημερώθηκαν οι λίστες των σταθερών λάθους από το Linux 3.19.
  • Ενημερωμένες λίστες εντολών ioctl από το Linux 3.9.
  • Προστέθηκαν νέες καταχωρήσεις syscall για να ταιριάζουν με το Linux 3.19.
  • Διορθώσεις σφαλμάτων:
  • Διορθώθηκαν διάφορα σφάλματα στη χαρτογράφηση μεταξύ αριθμών syscall και σχετικών πληροφοριών όπως ο αριθμός των παραμέτρων syscall, το όνομα του syscall και ο αποκωδικοποιητής syscall.
  • Σταθερά αναφερόμενα ζητήματα σε περιγραφές εκτύπωσης, ονόματα αρχείων, ονόματα διασυνδέσεων δικτύου, μέλη struct utsname, ονόματα συσκευών / τόμων των εντολών BLK * ioctl.
  • Σταθερή αποκωδικοποίηση uid_t / git_t.
  • Σταθερά πιθανά εκτός ορίων θέματα ανάγνωσης σε αποκωδικοποιητές getdents / getdents64.
  • Σταθερή πιθανή αποκοπή ανοικτών σημαιών σε ορισμένες αρχιτεκτονικές.
  • Σταθερή αποκωδικοποίηση του struct ifreq.ifr_name.
  • Σταθερή αποκωδικοποίηση της εντολής SIOCSIFNAME ioctl.
  • Σταθερή αποκωδικοποίηση σημαίας RENAME_ * renameat2.
  • Σταθερή αποκωδικοποίηση των δομών χρόνου UTIME_NOW / UTIME_OMIT.
  • Σταθερή αποκωδικοποίηση έμμεσων ipc subcalls σε ορισμένες αρχιτεκτονικές.
  • Σταθερή αποκωδικοποίηση του fanotify_mark syscall σε αρχιτεκτονικές 32 bit.
  • Σταθερή αποκωδικοποίηση κατασκευών stat 32 bit στις αρχιτεκτονικές 64 bit.
  • Σταθερή αποκωδικοποίηση του struct cmsghdr 32 bit σε αρχιτεκτονικές 64 bit.
  • Σταθερή αποκωδικοποίηση μετατόπισης preadv / pwritev 32 bit στις αρχιτεκτονικές 64 bit.
  • Σταθερή αποκωδικοποίηση της μάσκας σήματος sigreturn / rt_sigreturn στα ia64, ppc, ppc64, sparc, sparc64, mips και s390.
  • Έξοδος σταθερού δείκτη εντολών (επιλογή -i) σε αρχιτεκτονικές που υποστηρίζουν διάφορες προσωπικότητες.
  • Σταθερή συμπεριφορά του "-e read = set" και "-ε γράφουν = σύνολο" όταν τα σύνολα ανάγνωσης και εγγραφής τέμνονται.
  • Σταθερή κατασκευή σε συστήματα όπου η συνάρτηση struct δεν έχει κανένα μέλος sa_restorer.
  • Σταθερή κατασκευή με uclibc και libl libs.
  • Φορητότητα:
  • Ο πυρήνας Linux & gt; = 2.5.46 απαιτείται. Οι παλαιότερες εκδόσεις χωρίς την αξιοπρεπή υποστήριξη PTRACE_SETOPTIONS δεν θα λειτουργήσουν.
  • Σε mips, απαιτείται ο πυρήνας linux & gt; = 2.6.15. Οι παλαιότερες εκδόσεις χωρίς αξιόπιστη υποστήριξη PTRACE_GETREGS δεν θα λειτουργήσουν.
  • Στις s390 και s390x, απαιτείται ο πυρήνας linux & gt; = 2.6.27. Οι παλαιότερες εκδόσεις χωρίς αξιόπιστη υποστήριξη PTRACE_GETREGSET δεν θα λειτουργήσουν.

Τι νέο υπάρχει στην έκδοση 4.9:

  • Αλλαγές στη συμπεριφορά:
  • Απενεργοποιημένη υποστήριξη OABI στα συστήματα ARM EABI από προεπιλογή, προστέθηκε --ableable-arm-oabi επιλογή για να την ενεργοποιήσετε κατά τη διάρκεια των ρυθμίσεων.
  • Βελτιώσεις:
  • Προστέθηκε πειραματική επιλογή -k για την εκτύπωση ίχνους στοίβας μετά από κάθε εντοπισμένο σύγγραμμα.
  • Προστέθηκε η επιλογή -w για την παραγωγή στατιστικών στοιχείων σχετικά με την καθυστέρηση του συστήματος. (αναφέρεται στο σφάλμα του Debian # 457497).
  • Προστέθηκε υποστήριξη αρχιτεκτονικής ARC.
  • Προστέθηκε υποστήριξη PTRACE_GETREGS API στο PowerPC.
  • Ενισχυμένη υποστήριξη Bionic libc και musl libc.
  • Βελτιωμένη ανίχνευση των διαδικασιών προσωπικότητας x86 στα x86_64 και x32.
  • Ενισχυμένη ανίχνευση των διαδικασιών προσωπικότητας ARM στο AArch64.
  • Ενισχυμένη ανίχνευση προσωπικότητας 32 / 64bit σε PowerPC.
  • Εφαρμόστηκε αποκωδικοποίηση των συγγραμμάτων add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2 και request_key.
  • Αποσυνδεδεμένη αποκωδικοποίηση των συστημάτων επιλογής, pselect και io_submit.
  • Ενισχυμένη αποκωδικοποίηση των αρχείων delete_module, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns και sync_file_range.
  • Βελτιωμένη αποκωδικοποίηση των bitmasks signal.
  • Ενισχυμένη αποκωδικοποίηση των περιγραφικών αρχείων.
  • Ενισχυμένη αποκωδικοποίηση siginfo_t.
  • Ενισχυμένη αποκωδικοποίηση PF_NETLINK.
  • Ενημερώθηκαν CLOCK_ * σταθερές (διευθύνσεις σφάλματος Fedora # 1088455).
  • Προστέθηκαν νέες καταχωρήσεις syscall για να ταιριάζουν με το Linux 3.16.
  • Διορθώσεις σφαλμάτων:
  • Προστέθηκαν shmat και shmdt στο σύνολο των συσχετίσεων σχετικών με τη χαρτογράφηση μνήμης.
  • Σταθερή αποσύνδεση από τις διεργασίες που έχουν σταματήσει.
  • Σταθερή αποκωδικοποίηση fanotify_mark σε αρχιτεκτονικές 32bit.
  • Σταθερή αποκωδικοποίηση offset σε syscalls preadv και pwritev.
  • Σταθερή επιλογή αποκωδικοποίησης για το glibc στη λειτουργία _FORTIFY_SOURCE.
  • Σταθερή αποκωδικοποίηση του συστήματος epoll_ctl syscall με το επιχείρημα EPOLL_CTL_DEL.
  • Σταθερή δημιουργία και σύγκρουση (αντιμετωπίζει το σφάλμα Fedora # 993384).
  • Διάφορες διορθώσεις στη σελίδα εγχειριδίου. (Διευθύνσεις σφάλματος Debian # 725987).

Τι νέο υπάρχει στην έκδοση 4.8:

  • Αλλαγές στη συμπεριφορά:
  • Σε περίπτωση κανονικού τερματισμού του strace, όταν η έξοδος ίχνους μετατοπίζεται σε σωλήνα, το strace κλείνει τώρα και περιμένει τον τερματισμό της διαδικασίας του σωλήνα πριν την έξοδο.
  • Βελτιώσεις:
  • Εφαρμογή εντοπισμού χρησιμοποιώντας το API PTRACE_SEIZE (όταν είναι διαθέσιμο).
  • Εφαρμόστηκε πιο αξιόπιστη ανίχνευση προσωπικότητας διαδικασιών PTRACE_GETREGSET σε x86-64 και x32 (όταν είναι διαθέσιμη).
  • Προστέθηκε -e trace = επιλογή μνήμης για τον εντοπισμό σχετικών συσχετίσεων μνήμης.
  • Τεκμηριωμένη επιλογή -b.
  • Επιτρέπονται τα μηνύματα κατάστασης εξόδου που πρέπει να καταργηθούν δίνοντας δύο φορές την επιλογή -q.
  • Προστέθηκε υποστήριξη αρχιτεκτονικής AArch64 (διευθύνσεις σφαλμάτων του Debian # 693074 και σφάλματος Fedora # 969858).
  • Προστέθηκε υποστήριξη για αρχιτεκτονικές OpenRISC 1000, Meta και Xtensa.
  • Προστέθηκε υποστήριξη προσωπικότητας tilegx για πλακάκια.
  • Ενισχυμένη υποστήριξη των αρχιτεκτονικών NOMMU.
  • Βελτιωμένη αποκωδικοποίηση αποκτήσεων, mmap, perf_event_open, ptrace, και systemactals.
  • Προστέθηκαν νέες καταχωρήσεις syscall για να ταιριάζουν με το Linux 3.9.
  • Ανανέωσε τη λίστα των κοινών ονομασιών ioctl από το Linux 3.9.
  • Ενημερώθηκε η λίστα των σταθερών λάθους.
  • Ενημερωμένες λίστες των σταθερών AF_ *, MADV_ *, MAP_ *, MSG_ *, MS_ *, PF_ *, PR_ *, PTRACE_O_ * και TCP_ *.
  • Εφαρμογή αποκωδικοποίησης των IOctls του UBI.
  • Αφαιρέθηκε πλεόνασμα "* 32" ονόματα ioctl.
  • Διορθώσεις σφαλμάτων:
  • Σταθερή ERESTARTNOINTR διαρροή στο χώρο χρηστών σε αρχαίους πυρήνες (διευθύνσεις Fedora bug # 659382).
  • Διόρθωση κώδικα απελευθέρωσης σταθερού πυρήνα (διευθύνσεις σφαλμάτων του Debian # 702309).
  • Σταθερή αποκωδικοποίηση των * xattr syscalls (διευθύνσεις σφάλματος Fedora # 885233).
  • Σταθερός χειρισμός αρχείων με αριθμούς inode 64 bit από 32-bit strace (διευθύνσεις Fedora bug # 912790).
  • Σταθερά περόνες εντοπισμού στο SPARC.
  • Σταθερή αποκωδικοποίηση των αρχείων fadvise64, fallocate, ftruncate64, io_submit, preadv, preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl και truncate64.
  • Σταθερές κατηγορίες πολλαπλών syscalls στις περισσότερες υποστηριζόμενες αρχιτεκτονικές.
  • Σταθερή αποκωδικοποίηση μη εγγενών αναγνωριστικών προσωπικότητας 32-bit recv [m] msg syscalls.
  • Σταθερή αποκωδικοποίηση πολλαπλών συστημάτων 32-bit προσωπικότητας στο x32.
  • Σταθερή αποκωδικοποίηση των μακροχρόνιων παραμέτρων syscall για ARM, MIPS / o32, PowerPC, S390x και αρχιτεκτονικές κεραμιδιών.
  • Σταθερή αποκωδικοποίηση semtimedop στο S390x.
  • Σταθερή αποκωδικοποίηση sram_alloc στο Blackfin.
  • Σταθερή δημιουργία όταν η process_vm_readv είναι μια αιχμή.
  • Σταθερή κατασκευή με παλαιότερες εκδόσεις του libaio.h.

Τι είναι καινούργιο στην έκδοση 4.7:

  • Αυτή είναι μια σταθερή έκδοση, με τις συνήθεις διορθώσεις σφαλμάτων, βελτιώσεις.

Τι νέο υπάρχει στην έκδοση 4.6:

  • Πρόκειται για μια σταθερή έκδοση, για νέους πυρήνες Linux και άλλες βελτιώσεις, συμπεριλαμβανομένης μιας νέας μεθόδου που ακολουθεί το clone, το fork και το vfork syscalls χρησιμοποιώντας τις σαφείς δυνατότητες του πυρήνα του Linux για τον εντοπισμό της δημιουργίας κλωστών και παιδικών διαδικασιών.

Τι νέο υπάρχει στην έκδοση 4.5.20:

  • Βελτιώσεις:
  • Εφαρμογή αποκωδικοποίησης των νέων συστημάτων Linux: inotify_init1, recvmmsg.
  • Εφαρμογή βασικής αποκωδικοποίησης των νέων συστημάτων Linux: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
  • Ενισχυμένη αποκωδικοποίηση των προσφάτως προστεθειμένων syscalls σε αρχιτεκτονικές μη-x86, αντικαθιστώντας ένα γυμνό αποκωδικοποιητή με επεξεργασμένους επεξεργαστές που έχουν ενεργοποιηθεί νωρίτερα για x86 / x86-64.
  • Εφαρμογή -η επιλογή συνδυασμού κανονικών και εξόδων -c. (Διευθύνσεις σφάλματος Debian # 466196)
  • Ενισχυμένη αποκωδικοποίηση των mbind και mremap syscalls.
  • Ενισχυμένη αποκωδικοποίηση επιλογών υποδοχής SOL_PACKET.
  • Αναγεννημένη λίστα ονομάτων ioctl από το linux 2.6.33.
  • Προστέθηκε υποστήριξη αρχιτεκτονικής TILE.
  • Διορθώσεις σφαλμάτων:
  • Σταθερή κατασκευή με κεφαλίδες πυρήνα Linux 2.6.32-rc5 +. (Διευθύνσεις σφάλματος Debian # 560516 και σφάλμα Fedora # 539044)
  • Σταθερή κατασκευή σε μίλια.
  • Σταθερός χειρισμός συστημάτων Linux χωρίς δομή statfs64.
  • Σταθερή μάσκα σήματος αναφοράς από sigreturn στο powerpc.
  • Σταθερό buffer υπερχείλισης δυναμικού στοίβας σε επιλεγμένο αποκωδικοποιητή. (Διευθύνσεις σφάλματος Fedora # 556678)
  • Διορθώθηκε η έμμεση αποκωδικοποίηση ipccall
  • Διορθώθηκε η αποκωδικοποίηση των 64bit syscalls. (Διευθύνσεις σφάλματος του Debian # 570603)
  • Διορθώθηκε η αποκωδικοποίηση του getockopt σε αρχιτεκτονικές όπου sizeof (long) & gt; μέγεθοςof (int). (Διευθύνσεις σφάλματος Debian # 494844)
  • Διορθώθηκε η αποκωδικοποίηση του epoll_pwait. (Διευθύνσεις σφάλματος του Debian # 513014)
  • Διορθώθηκε ο χειρισμός θανάτων κλωστών

Παρόμοια λογισμικά

Valgrind
Valgrind

17 Feb 15

drainhunter
drainhunter

12 May 15

pytrace
pytrace

20 Feb 15

Σχόλια για strace

Τα σχόλια δεν βρέθηκε
προσθήκη σχολίου
Ενεργοποιήστε τις εικόνες!
Αναζήτηση ανά κατηγορία