strace

Screenshot Software:
strace
Mga detalye ng Software:
Bersyon: 4.19 Na-update
I-upload ang petsa: 23 Nov 17
Lisensya: Libre
Katanyagan: 23

Rating: 5.0/5 (Total Votes: 1)

strace ay isang open source at malayang ibinahagi software na dinisenyo para sa mga developer at system administrator, na nagbibigay ng system call tracking na ipinatupad sa C at dinisenyo upang tumakbo nang eksklusibo sa ilalim ng GNU / Linux operating system.

Ang programa ay isang napaka-kapaki-pakinabang na debugging, instructional at diagnostic utility na maaaring magtipon ng lahat ng mga tawag sa system na binuo ng isang programa o isang proseso, at i-print ang isang bakas. Ito ay isang command-line na programa na maaari lamang magamit mula sa isang console na kapaligiran o sa pamamagitan ng terminal emulator app.

Ang tool ay maaaring gamitin ng mga diagnostician, troubleshooter, pati na rin ang mga tagapangasiwa ng system na gusto ng isang hindi mabibili ng salapi na solusyon para sa paglutas ng mga problema sa mga saradong pinagmulan ng mga programa. Ito ay isinulat ni Dmitry V. Levin, Roland McGrath at Wichert Akkerman.


Mga pagpipilian sa command line

Tulad ng anumang iba pang software na command-line, strace ay nag-aalok ng iba't ibang uri ng mga pagpipilian sa command-line na nagbibigay-daan sa user na madaling gamitin ang lahat ng pag-andar at tampok nito upang makamit ang kanilang mga gawain. Ang lahat ng mga pagpipilian sa command-line nito ay maaaring makita sa isang sulyap sa pamamagitan ng pagpapatakbo ng strace --help & rsquo; utos.

Kabilang sa mga pinaka-kagiliw-giliw na mga pagpipilian sa command line, maaari naming banggitin ang suporta para sa pagbibilang ng mga oras, mga tawag at mga error para sa bawat syscall, suporta para sa buod ng syscall latency, suporta para sa pagsunod ng mga access sa isang tiyak na landas, suporta para sa pagpapagana ng debug output sa stderr, pati na rin ang suporta para sa pagpapatakbo ng isang proseso ng pagsubaybay bilang isang hiwalay na apo, hindi bilang isang magulang.

Bukod pa rito, makakapagpadala ka ng impormasyon sa bakas sa isang tukoy na file sa halip na stderr, upang itakda ang ibabaw para sa pagsubaybay ng mga syscall sa isang overhead usec, upang magtakda ng PID file para sa proseso ng pagsubaybay, upang limitahan ang haba ng mga string ng naka-print upang mahawakan ang mga karakter, upang patakbuhin ang mga command bilang username handling setgid at / o setuid, at upang makahiwalay sa isang partikular na syscall.


Pagsisimula sa strace

strace ay ipinamamahagi lamang bilang pinagmulang tarball, ngunit maaari itong madaling mai-install sa maraming mga distribusyon ng Linux mula sa kanilang mga pangunahing repository ng software. Upang i-install ito mula sa mga mapagkukunan, i-download lamang ang pinakabagong bersyon mula sa Softoware, i-save ang archive sa isang lokasyon na iyong pinili at i-unpack ito.

Buksan ang isang Terminal app, pumunta sa lokasyon ng mga nakuhang mga file ng archive (hal. cd / home /softoware/strace-4.9), patakbuhin ang ./configure && gumawa ng & rsquo; utos upang i-configure at i-compile strace, at pagkatapos ay magsagawa ng & lsquo; gumawa ng pag-install & rsquo; command bilang root o ang & lsquo; sudo gumawa i-install & rsquo; command bilang isang privileged user upang mai-install ang malawak na sistema ng strace.

Ano ang bagong sa paglabas na ito:

  • Mga Pagpapabuti:
  • Idinagdag -yy pagpipilian upang mag-print ng impormasyon ng protocol at address na nauugnay sa mga tagapaglarawan socket.
  • Pinalawak & quot; -e read = set & quot; at & quot; -e write = set & quot; mga pagpipilian upang masakop ang sendmsg, recvmsg, sendmmsg, at recvmmsg syscalls.
  • Ipinatupad ang buong 32-bit na pag-decode ng mga utos ng ioctl (mga address Debian bug # 692913 at Fedora bug # 902788).
  • Ipinatupad ang suporta ng PTRACE_GETREGS API sa ia64.
  • Sinusuportahang PTRACE_GETREGS API na suporta sa mips.
  • Ipinatupad ang suporta ng PTRACE_GETREGSET API sa s390 / s390x.
  • Ipinatupad ang pag-decode ng getrandom at seccomp syscalls.
  • Ipatupad ang buong pag-decode ng 64-bit na mga hanay ng kakayahan.
  • Ipinatupad ang pag-decode ng lahat ng mga utos ng prctl.
  • Ipinatupad ang pag-decode ng parametrized na mga command na ioctl.
  • Ipinatupad ang pag-decode ng mga command na evdev ioctl.
  • Ipinatupad ang pag-decode ng mga utos ng v4l ioctl.
  • Ipinatupad ang pag-decode ng mga utos ng SG_IO v4 ioctl.
  • Ipinatupad ang pag-decode ng mga utos ng FIFREEZE / FITHAW / FITRIM.
  • Ipinatupad ang pag-decode ng FALLOC_FL_ * fallocate flags.
  • Ipinatupad ang pag-decode ng rt_sigreturn signal mask sa aarch64, x32, at x86_64.
  • Pinaghusay na decoder ng socket upang suportahan ang mga socket ng bluetooth.
  • Pinahusay na pag-decode ng mga hindi nakalistang ioctl na utos.
  • Pinahusay na pag-decode ng getockopt at setsockopt syscall.
  • Pinahusay na pag-decode ng sysinfo syscall.
  • Pinahusay na pag-decode ng struct cmsghdr.
  • Pinahusay na pag-decode ng katayuan ng paghihintay.
  • Enhanced aio support sa mga di-x86 architectures sa pamamagitan ng paggamit ng external libaio.h.
  • Nagdagdag ng O_TMPFILE sa listahan ng mga nakilala na mga flag mode na bukas.
  • Na-update ang listahan ng mga constants na uri ng filesystem na ginagamit sa pag-decode ng mga systalls ng pamilya ng statfs.
  • Nai-update na mga listahan ng CAP_ *, PR_ *, PTRACE_ *, SCHED_ *, SO_ *, SOL_ *, SWAP_FLAG_ *, at TFD_ * constants.
  • Nai-update na mga listahan ng constants ng signal mula sa Linux 3.19.
  • Na-update na mga listahan ng constants ng errno mula sa Linux 3.19.
  • Nai-update na mga listahan ng mga utos ng ioctl mula sa Linux 3.9.
  • Nagdagdag ng mga bagong entry ng syscall upang tumugma sa Linux 3.19.
  • Mga pag-aayos ng bug:
  • Naayos ang iba't ibang mga error sa pagmamapa sa pagitan ng mga numero ng syscall at nauugnay na impormasyon tulad ng bilang ng mga syscall argument, ang pangalan ng syscall, at syscall decoder.
  • Isinasagawa ang mga isyu sa pag-quote sa mga descriptor sa pag-print, mga pangalan ng file, mga pangalan ng network interface, mga miyembro ng struct struct, mga pangalan ng aparato / dami ng BLK * ioctl na mga utos.
  • Fixed uid_t / git_t decoding.
  • Fixed na mga potensyal na out-of-bound basahin ang mga isyu sa mga getdents / getdents64 decoders.
  • Fixed potensyal na bukas na mga pagbubukang flag sa ilang mga arkitektura.
  • Fixed decoding ng struct ifreq.ifr_name.
  • Fixed decoding ng SIOCSIFNAME ioctl command.
  • Fixed decoding ng RENAME_ * renameat2 flags.
  • Nakatakdang pag-decode ng UTIME_NOW / UTIME_OMIT na mga istrakturang pang-araw-araw.
  • Fixed decoding ng hindi direktang ipc subcalls sa ilang mga architectures.
  • Fixed decoding ng fanotify_mark syscall sa 32-bit architectures.
  • Fixed decoding ng 32-bit stat structures sa 64-bit architectures.
  • Fixed decoding ng 32-bit struct cmsghdr sa 64-bit architectures.
  • Fixed decoding ng 32-bit preadv / pwritev offset sa 64-bit architectures.
  • Fixed decoding ng sigreturn / rt_sigreturn signal mask sa ia64, ppc, ppc64, sparc, sparc64, mips, at s390.
  • Fixed instruction pointer output (-i option) sa mga architectures na sumusuporta sa ilang mga personalidad.
  • Nakatakdang pag-uugali ng & quot; -e read = set & quot; at & quot; -e write = set & quot; kapag binabasa at isulat ang mga hanay ng intersect.
  • Fixed build on systems kung saan ang struct sigaction ay walang miyembro sa_restorer.
  • Fixed build with uclibc and musl libc.
  • Portability:
  • Kinakailangan ang kernel ng Linux & gt; = 2.5.46. Ang mga mas lumang bersyon na walang disenteng suporta sa PTRACE_SETOPTIONS ay hindi gagana.
  • Sa mips, kinakailangan ang linux kernel & gt; = 2.6.15. Ang mga mas lumang bersyon na walang disenteng PTRACE_GETREGS ay hindi gagana.
  • Sa s390 at s390x, kinakailangan ang linux kernel & gt; = 2.6.27. Ang mga mas lumang bersyon na walang disenteng PTRACE_GETREGSET ay hindi gagana.

Ano ang bago sa bersyon 4.9:

  • Mga pagbabago sa pag-uugali:
  • Hindi pinapagana ng suporta ng OABI sa mga sistema ng ARM EABI sa pamamagitan ng default, idinagdag - opsyon na magagamit na arm-oabi upang paganahin ito sa pag-configure ng oras.
  • Mga Pagpapabuti:
  • Nagdagdag ng opsyon na pang-eksperimentong -k upang mag-print ng stack na bakas pagkatapos bawat traced syscall.
  • Nagdagdag ng pagpipilian sa -w upang makabuo ng mga istatistika sa latency ng syscall. (mga address Debian bug # 457497).
  • Nagdagdag ng ARC support architecture.
  • Nagdagdag ng PTRACE_GETREGS API support sa PowerPC.
  • Pinahusay na Bionic libc at suporta sa musl libc.
  • Pinahusay na pagsunod sa mga proseso ng personalidad ng x86 sa x86_64 at x32.
  • Pinahusay na pagsunod sa mga proseso ng pagkatao ng ARM sa AArch64.
  • Enhanced 32 / 64bit personality detection sa PowerPC.
  • Ipinatupad ang pag-decode ng add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2, at request_key syscalls.
  • Robustified decoding ng select, pselect, at io_submit syscalls.
  • Pinahusay na pag-decode ng delete_module, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns, at sync_file_range syscalls.
  • Pinahusay na pag-decode ng mga bitmasks ng signal.
  • Pinahusay na pag-decode ng mga descriptor ng file.
  • Pinahusay na siginfo_t decoding.
  • Pinaghusay na PF_NETLINK na pag-decode.
  • Na-update CLOCK_ * constants (mga address Fedora bug # 1088455).
  • Nagdagdag ng mga bagong entry ng syscall upang tumugma sa Linux 3.16.
  • Mga pag-aayos ng bug:
  • Nagdagdag ng shmat at shmdt sa hanay ng mga syscalls na may kaugnayan sa pagmamapa ng memory.
  • Fixed detaching from stopped processes.
  • Fixed fanotify_mark decoding sa 32bit architectures.
  • Fixed offset decoding sa preadv at pwritev syscalls.
  • Fixed select decoding para sa glibc sa _FORTIFY_SOURCE mode.
  • Fixed decoding ng epoll_ctl syscall sa argumento ng EPOLL_CTL_DEL.
  • Fixed build when and conflict (mga address Fedora bug # 993384).
  • Mga iba't ibang pagwawasto sa manu-manong pahina. (Mga address Debian bug # 725987).

Ano ang bago sa bersyon 4.8:

  • Mga pagbabago sa pag-uugali:
  • Sa kaso ng normal na strace termination, kapag na-redirect ang output ng trace sa isang pipe, isinasara na ngayon ng strace at naghihintay para sa pagtatapos ng proseso ng pipe bago lumabas.
  • Mga Pagpapabuti:
  • Ipatupad ang pagsunod gamit ang PTRACE_SEIZE API (kapag available).
  • Ipinatupad ang mas maaasahang PTRACE_GETREGSET na nakabatay sa pagkatao ng pagtukoy sa personalidad sa x86-64 at x32 (kapag available).
  • Idinagdag-trace = opsyon sa memorya para sa pagsunod sa mga may-scan na mga syscalls na may kaugnayan sa memorya.
  • Na-dokumentado -b pagpipilian.
  • Pinahintulutan ang mga mensaheng pang-estado ng exit na mapigilan sa pamamagitan ng pagbibigay nang dalawang beses -q na opsiyon.
  • Nagdagdag ng suporta sa arkitekturang AArch64 (mga address Debian bug # 693074 at Fedora bug # 969858).
  • Nagdagdag ng suporta para sa mga arkitektura ng OpenRISC 1000, Meta, at Xtensa.
  • Nagdagdag ng suporta sa tilegx na personalidad para sa Tile.
  • Pinahusay na suporta ng mga arkitekturang NOMMU.
  • Pinahusay na pag-decode ng mga getdents, mmap, perf_event_open, ptrace, at quotactl syscalls.
  • Nagdagdag ng mga bagong entry ng syscall upang tumugma sa Linux 3.9.
  • Binago ang listahan ng mga karaniwang mga pangalan ng ioctl mula sa Linux 3.9.
  • Na-update ang listahan ng constants ng errno.
  • Nai-update na mga listahan ng AF_ *, MADV_ *, MAP_ *, MSG_ *, MS_ *, PF_ *, PR_ *, PTRACE_O_ *, at TCP_ * constants.
  • Ipinatupad ang pag-decode ng mga UBI ioctls.
  • Inalis ang kalabisan & quot; * 32 & quot; mga pangalan ng ioctl.
  • Mga pag-aayos ng bug:
  • Naayos ERESTARTNOINTR sa mga userspace sa sinaunang kernels (mga address Fedora bug # 659382).
  • Fixed kernel release string parsing (mga address Debian bug # 702309).
  • Fixed decoding ng * xattr syscalls (mga address Fedora bug # 885233).
  • Fixed handling of files na may 64-bit na mga numero ng inode sa pamamagitan ng 32-bit strace (mga address Fedora bug # 912790).
  • Inayos ang mga tala ng pagsubaybay sa SPARC.
  • Fixed decoding ng fadvise64, fallocate, ftruncate64, io_submit, pread, preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl, at truncate64 syscalls.
  • Fixed na mga kategorya ng maraming syscalls sa karamihan ng mga sinusuportahang arkitektura.
  • Fixed decoding ng di-katutubong 32-bit personalidad recv [m] msg syscalls.
  • Fixed decoding ng maramihang mga 32-bit na personalidad syscalls sa x32.
  • Nakatakdang pag-decode ng mahabang mahahabang syscall na mga argumento sa ARM, MIPS / o32, PowerPC, S390x, at mga arkitektura ng Tile.
  • Fixed semtimedop decoding sa S390x.
  • Fixed sram_alloc decoding sa Blackfin.
  • Fixed build kapag process_vm_readv ay isang ulos.
  • Fixed build na may mas lumang bersyon ng libaio.h.

Ito ay isang matatag na release, kasama ang karaniwang bugfixes, pinahusay na suporta para sa sariwang mga kernels ng Linux, at iba pa pagpapabuti.

Ano ang bago sa bersyon 4.6:

  • Ito ay isang matatag na release, na may karaniwang bugfixes, para sa mga sariwang kernel ng Linux, at iba pang mga pagpapabuti, kabilang ang isang bagong paraan ng mga sumusunod na clone, fork, at vfork syscalls gamit ang malinaw na mga pasilidad ng Linux kernel para sa pagsunod ng paglikha ng mga thread at proseso ng bata.

Ano ang bago sa bersyon 4.5.20:

  • Mga Pagpapabuti:
  • Ipinatupad ang pag-decode ng bagong linux syscalls: inotify_init1, recvmmsg.
  • Ipinatupad ang pangunahing pag-decode ng bagong linux syscalls: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
  • Pinahusay na pag-decode ng mga kamakailang idinagdag syscalls sa mga di-x86 na arkitektura sa pamamagitan ng pagpapalit ng isang hubad na decoder na may masalimuot na mga parser na maagang pinagana para sa x86 / x86-64.
  • Ipinatupad -C pagpipilian upang pagsamahin ang regular at -c output. (Mga Address Debian bug # 466196)
  • Pinahusay na pag-decode ng mbind at mremap syscalls.
  • Pinahusay na mga pagpipilian sa socket SOL_PACKET ang pag-decode.
  • Regenerated listahan ng mga pangalan ng ioctl mula sa linux 2.6.33.
  • Nagdagdag ng suporta sa architecture ng TILE.
  • Mga pag-aayos ng bug:
  • Fixed build na may Linux kernel header 2.6.32-rc5 +. (Mga address Debian bug # 560516 at Fedora bug # 539044)
  • Fixed build on mips.
  • Fixed handling of Linux systems without struct stat6464.
  • Fixed signal signal ng pag-uulat sa pamamagitan ng sigreturn sa powerpc.
  • Inayos ang potensyal na overflow na buffer ng stack sa piling decoder. (Mga address Fedora bug # 556678)
  • Nawastong msgsnd hindi direktang ipccall decoding.
  • Nawastong decoding ng 64bit syscalls. (Mga Address Debian bug # 570603)
  • Nawastong nakakakuha ng decoding sa architectures kung saan sizeof (mahaba) & gt; sizeof (int). (Mga Address Debian bug # 494844)
  • Nawastong decoding ng epoll_pwait. (Mga Address Debian bug # 513014)
  • Nawastong paghawak ng mga napatay na mga thread.

Katulad na software

mpatrol
mpatrol

3 Jun 15

ngrep
ngrep

2 Jun 15

rpcpdb
rpcpdb

20 Feb 15

MBW
MBW

18 Feb 15

Mga komento sa strace

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!