strace yra atvirojo kodo ir laisvai platinama programinė įranga, sukurta kūrėjams ir sistemos administratoriams, teikianti sisteminį skambučių sekimo priemonę, įdiegtą C ir sukurta veikti tik pagal GNU / Linux operacines sistemas.
Programa yra labai naudinga derinimo, mokymo ir diagnostikos priemonė, kuri gali surinkti visus programos arba proceso sugeneruotus sistemos skambučius ir spausdinti pėdsaką. Tai komandinės eilutės programa, kurią galima naudoti tik iš konsolinės aplinkos arba naudojant terminalo emuliatoriaus programą.
Šis įrankis gali būti naudojamas diagnostikų, trikčių šalinimo įrankių, taip pat sistemų administratoriams, kurie nori neįkainojamo sprendimo, skirto uždarojo tipo programoms spręsti, sprendimo. Tai parašė Dmitrijus V. Levinas, Rolandas McGratas ir Wichertas Akkermanis.
Komandinės eilutės parinktys
Kaip ir bet kuri kita komandinės eilutės programinė įranga, "strace" siūlo daugybę komandinės eilutės parinkčių, leidžiančių vartotojui lengvai naudotis visomis savo funkcijomis ir funkcijomis, kad galėtų atlikti savo užduotis. Visos komandinės eilutės parinktys gali būti peržiūrėtos iš karto paleidus & lsquo; strace --help & rsquo; komanda.
Tarp įdomiausių komandinės eilutės parinkčių mes galime paminėti palaikymą, skirtą skaičiuoti kiekvieno "syscall" laiko, skambučių ir klaidų skaičių, paramą apibendrinti syscall latentinį laiką, paramą stebėti prieigą prie tam tikro kelio, paramą, leidžiantį derinti išėjimą į stderr, taip pat parama stebėjimo proceso veikimui kaip atskirtas anūkas, o ne kaip tėvas.
Be to, galėsite siųsti informacijos pėdsaką į konkretų failą, o ne stderr, nustatyti pridėtines sąnaudas, skirtas stebėti syscalls į pridėtines usecas, nustatyti PID failą pėdsakų procesui, apriboti spausdinimo eilučių ilgį strsize chars, paleisti komandas kaip naudotojo vardo tvarkymo setgid ir / arba setuid ir atskirti konkrečią syscall.
Darbo su strace pradžia
"strace" yra platinamas tik kaip šaltinio archyvas, tačiau jį galima lengvai įdiegti daugelyje Linux platinimų iš pagrindinių programinės įrangos saugyklų. Norėdami įdiegti jį iš šaltinių, tiesiog atsisiųskite naujausią "Softoware" versiją, išsaugokite archyvą pasirinktoje vietoje ir išpakuokite ją.
Atidarykite "Terminalo" programą, eikite į ištrauktų archyvo failų vietą (pvz., cd /home/softoware/strace-4.9), paleiskite ./configure && make & rsquo; komandą sukonfigūruoti ir sukonfigūruoti strace, tada paleisti & lsquo; padaryti įdiegimą & rsquo; komanda kaip root arba "sudo make install & rsquo;
Kas naujo šiame leidime:
- Patobulinimai:
- Pridėta - jūsų pasirinktis spausdinti protokolo ir adreso informaciją, susietą su lizdo deskriptoriais.
- Išplėstinė & quot; -e skaityti = nustatyti & quot; ir "-e write = set" Parinktys, kuriomis galima padengti sendmsg, recvmsg, sendmmsg ir recvmmsg syscalls.
- Įdiegta pilna 32 bitų Ioctl komandų iššifravimas (adresai "Debiano klaida" # 692913 ir "Fedora" klaida # 902788).
- Įgyvendinta "PTRACE_GETREGS" API palaikymas "ia64".
- Įgyvendinta "PTRACE_GETREGS" API palaikymas "MIPS".
- Įgyvendinta "PTRACE_GETREGSET" API palaikymas naudojant "s390 / s390x".
- Įdiegtas getrandom ir seccomp syscalls dekodavimas.
- Įdiegta visiškai iššifruoti 64 bitų funkcijų rinkinius.
- Įgyvendinta visų "prctl" komandų iššifravimas.
- Įdiegė parametrizuotų ioctl komandų dekodavimą.
- Įgyvendintas evdev ioctl komandų dekodavimas.
- V4l ioctl komandų dekodavimas.
- Įgyvendintas SG_IO v4 ioctl komandų dekodavimas.
- Įdiegtas komandų FIFREEZE / FITHAW / FITRIM ioctl dekodavimas.
- Įgyvendintas FALLOC_FL_ * iškraipymo vėliavų dekodavimas.
- Įgyvendinta rt_sigreturn signalo kaukės dekodavimas aarch64, x32 ir x86_64.
- Patobulintas lizdo dekoderis palaikydamas "Bluetooth" lizdus.
- Išplėsta neįtrauktų į sąrašą Ioctl komandų dekodavimas.
- "getockopt" ir "setsockopt syscall" dekodavimas.
- Sysinfo syscall dekodavimas.
- "Struct cmsghdr" išplėstinis iššifravimas
- Geresnis laukimo būsenos dekodavimas.
- Pagerintas "aio" palaikymas ne x86 architektūrose naudojant išorinį "libaio.h".
- Pridėta O_TMPFILE prie atpažintų atviros režimo vėliavų sąrašo.
- Atnaujintas failų sistemos tipo konstantų sąrašas, kuris naudojamas koduojančių šeimos syscalls dekodavimui.
- atnaujinti CAP_ *, PR_ *, PTRACE_ *, SCHED_ *, SO_ *, SOL_ *, SWAP_FLAG_ * ir TFD_ * konstantų sąrašai.
- Atnaujinti "Linux 3.19" signalų konstantų sąrašai.
- atnaujinti errno konstantų sąrašai iš "Linux 3.19".
- Atnaujinti "ioctl" komandų sąrašai iš "Linux 3.9".
- Pridėjo naujus "syscall" įrašus, kad jie atitiktų "Linux 3.19".
- Klaidų pataisymai:
- Ištaisytos įvairios klaidos surenkant tarp syscall numerių ir susijusios informacijos, pvz., "syscall" argumentų skaičiaus, "syscall" pavadinimo ir "syscall" dekoderio.
- Fiksuotos citavimo problemos spausdinant aprašus, failų pavadinimus, tinklo sąsajų pavadinimus, struktūroms pavadinimų narius, BLK * ioctl komandų įrenginio / tomo pavadinimus.
- Ištaisyta "uid_t / git_t" dekodavimas.
- Ištaisytos potencialios "out-of-bounds" skaitymo problemos "getdents / getdents64" dekoderiuose.
- Fiksuotos galimos atvirosios vėliavos sutrumpinimas kai kuriose architektūrose.
- Ištaisyta struct ifreq.ifr_name.
- Fiksuotas SIOCSIFNAME ioctl komandų dekodavimas.
- Ištaisyta vėliavėlių RENAME_ * renameat2 dekodavimas.
- Ištaisyta "timeval" struktūrų UTIME_NOW / UTIME_OMIT dekodavimas.
- Ištaisyta netiesioginių ipc skambučių dekodavimas kai kurioms architektūroms.
- Ištaisyta fanotify_mark syscall dekodavimas 32 bitų architektūroje.
- Ištaisyta 32 bitų statinių struktūrų dekodavimas 64 bitų architektūroje.
- Ištaisyta 32 bitų struct cmsghdr dekodavimas 64 bitų architektūroje.
- Ištaisyta 32 bitų "preadv / pwritev" 64 bitų architektūrų iššifravimas.
- Ištaisyta sigreturn / rt_sigreturn signalo mask dekodavimo ant ia64, ppc, ppc64, sparc, sparc64, mips ir s390.
- Nustatyta nurodymų rodyklės išvestis (-i variantas) tokiose architektūrose, kuriose palaikomos kelios asmenybės.
- Ištaisyta "-e skaityti = nustatyti" elgesį ir "-e write = set" kai perskaityti ir rašyti rinkiniai susikerta.
- Nustatyta, kad sistemose naudojama sistema, kurioje struct sigaction neturi nario sa_restorer.
- Ištaisyta statyti naudojant uclibc ir musl libc.
- perkeliamumas:
- "Linux kernel"> = 2.5.46. Senesnės versijos be padoraus PTRACE_SETOPTIONS palaikymo neveiks.
- "MIPS" reikalingas "Linux" branduolys & gt; = 2.6.15. Senesnės versijos be padoraus PTRACE_GETREGS palaikymo neveiks.
- Sąsajose s390 ir s390x reikalingas linų branduolys> = 2.6.27. Senesnės versijos be padoraus PTRACE_GETREGSET palaikymo neveiks.
Kas naujo versijoje 4.9:
- elgesio pokyčiai:
- Išjungta "OABI" palaikymas "ARM EABI" sistemose pagal numatytuosius nustatymus, pridėta galimybė "enable-arm-oabi", kad būtų galima sukonfigūruoti laiką.
- Patobulinimai:
- Pridėjo eksperimentinę -k parinktį, kad būtų galima spausdinti pėdsakų pėdsaką po kiekvieno atsektos syscall.
- Pridėta -w galimybė generuoti syscall latento statistiką. (adresai Debian'o klaida Nr. 457497).
- Pridėta ARC architektūros palaikymo.
- Pridėjo PTRACE_GETREGS API palaikymą "PowerPC".
- Pagerinta Bionic libc ir musl libc palaikymas.
- Pagerintas x86 asmenybės procesų atsekimas x86_64 ir x32.
- Pagerintas ARM asmenybės procesų atsekimas AArch64.
- Patobulinta 32/64 bitų asmenybės aptikimo funkcija "PowerPC".
- Įdiegtas add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2 ir request_key syscalls dekodavimas.
- Robustifikuotas pasirinkčių, pselect ir io_submit syscalls dekodavimas.
- Glaudesnis ištrynimas: delete_module, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns ir sync_file_range syscalls.
- Geresnis signalo bitų masyvo dekodavimas.
- Geresnis failų aprašų dekodavimas.
- Išplėstas siginfo_t dekodavimas.
- Išplėstas PF_NETLINK dekodavimas.
- Atnaujinta CLOCK_ * konstanta (adresai "Fedora" klaida Nr. 1088455).
- Pridėjo naujus "syscall" įrašus, kad jie atitiktų "Linux 3.16".
- Klaidų pataisymai:
- Pridėjo shmat ir shmdt į atitinkamas atminties kartografavimo sistemas.
- Fiksuotas atsijungimas nuo sustabdytų procesų.
- Ištaisyta "fanotify_mark" dekodavimas 32 bitų architektūroje.
- Ištaisytas nuskaitymas iš kompaktinio disko į "preadv" ir "pwritev" syscalls.
- Nustatyta, kad pasirinkote glibc dekodavimą "_FORTIFY_SOURCE" režimu.
- Fiksuotas epoll_ctl syscall dekodavimas su EPOLL_CTL_DEL argumentu.
- Fiksuotas sukūrimas, kai ir konfliktas (adresai "Fedora" klaidos numeris 993384).
- Įvairūs pataisymai vadovo puslapyje. (Adresai Debiano klaida # 725987).
Kas naujo 4.8 versijoje:
- elgesio pokyčiai:
- Esant normaliam treniruotės nutraukimui, kai pėdsakų išvestis nukreipiama į vamzdį, "strace" dabar uždaro ir laukia vamzdžių proceso užbaigimo prieš išvažiavimą.
- Patobulinimai:
- Įdiegta atsekamumas naudojant PTRACE_SEIZE API (jei yra).
- Įgyvendino labiau patikimą PTRACE_GETREGSET proceso asmenybės aptikimą x86-64 ir x32 (jei yra).
- Pridėta -e trace = atminties parinktis, kad būtų galima atpažinti susijusias syscalls atminties žemėlapius.
- Documented-b parinktis
- Leidžiami išėjimo būsenos pranešimai turi būti slopinami, du kartus nurodant -q parinktį
- Pridėta "AArch64" architektūros palaikymo funkcija (adresai "Debiano klaida" # 693074 ir "Fedora" klaida # 969858).
- Pridėtas "OpenRISC 1000", "Meta" ir "Xtensa" architektūros palaikymas.
- Pridedamas "Tilegx" asmenybės palaikymas plytelėms.
- Glaudesnis NOMMU architektūros palaikymas.
- Geresnis "getdents", "mmap", "perf_event_open", "ptrace" ir "quotactl" syscalls dekodavimas.
- Pridėjo naujus "syscall" įrašus, kad jie atitiktų "Linux 3.9".
- Atkūrė bendrąjį "ioctl" vardų sąrašą iš "Linux 3.9".
- Atnaujinta errno konstantų sąrašas.
- atnaujinami sąrašai AF_ *, MADV_ *, MAP_ *, MSG_ *, MS_ *, PF_ *, PR_ *, PTRACE_O_ * ir TCP_ * konstatuojamos.
- Įgyvendintas UBI ioctls dekodavimas.
- Pašalinta nereikalinga & quot; * 32 " Ioctl pavadinimai.
- Klaidų pataisymai:
- Nustatyta, kad ERESTARTNOINTR nukrito į naudotojų erdvę senoviniuose branduoliuose (adresai "Fedora" klaida Nr. 659382).
- Fiksuotas branduolio išleidimo stygos analizavimas (adresas Debiano klaida Nr. 702309).
- Ištaisyta * xattr syscalls (adresas Fedora klaida # 885233).
- Fiksuotas failų tvarkymas su 64 bitų inode skaičiais 32 bitų strace (adresas Fedora klaida # 912790).
- Fiksuotos SPARC sekimo šakutės.
- Ištaisyta fadvise64, flawed, ftruncate64, io_submit, pread, preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl ir truncate64 syscalls dekodavimas.
- Daugumoje palaikomų architektūrų nustatytos kelios syscalls.
- Ištaisyta nevietinių 32 bitų asmenybės dekodavimo recv [m] msg syscalls.
- Ištaisyta daugybe 32 bitų asmenybės syscalls su x32.
- Ištaisyta ilgų ilgalaikių "syscall" argumentų deformacija "ARM", "MIPS / o32", "PowerPC", "S390x" ir "Tile" architektūros.
- Ištaisyta semtimedop dekodavimas naudojant S390x.
- Ištaisyta sram_alloc "Blackfin" dekodavimas.
- Nustatyta, kad procesas_vm_readv yra stablis.
- Ištaisyta statyti su senesnėmis libaio.h versijomis.
Kas naujo 4.7 versijoje?
- Tai yra stabili versija, su įprastais klaidų taisymais, patobulinta parama naujiems "Linux" branduoliams ir kitiems. patobulinimai.
- Tai yra stabili versija su įprastais klaidų taisymais, sustiprintas palaikymas. naujiems "Linux" branduoliams ir kiti patobulinimai, įskaitant naują klonų, šakių ir vfork "syscalls" metodą, naudojant aiškius "Linux" branduolio įrenginius, skirtus sekti temų ir vaikų procesų kūrimą.
- Patobulinimai:
- Įdiegta naujų "Linux" syscalls iššifravimas: inotify_init1, recvmmsg.
- Įdiegtas pagrindinis naujųjų "linux syscalls" iššifravimas: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
- Patobulintas neseniai pridėtų failų dekodavimas ne x86 architektūrose, pakeitus nedidelį dekoderį su išsamiais analizatoriais, kurie anksčiau buvo įgalinti x86 / x86-64.
- Įgyvendinta -C parinktis suderinti reguliarią ir -c produkciją. (Adresai Debiano klaida Nr. 466196)
- Geresnis mbind ir mremap syscalls dekodavimas.
- Išplėstos SOL_PACKET lizdo parinkčių dekodavimas.
- Atnaujintas Ioctl vardų sąrašas iš "Linux" 2.6.33.
- Pridėta TILE architektūros palaikymas.
- Klaidų pataisymai:
- Fiksuotas kūrimas naudojant "Linux" branduolio antraštes 2.6.32-rc5 +. (Adresai Debian klaidą # 560516 ir Fedora klaida # 539044)
- Pastovus pastatytas ant "MIPS".
- Ištaisyta "Linux" sistemų tvarkymas be struct statfs64.
- Ištaisyta pranešimų siuntimo signalo maskavimas naudojant "powerpc".
- Fiksuoto potencialaus kamino buferio perpildymas pasirinktame dekoderiuje. (Fedora klaidos adresai # 556678)
- Ištaisyta msgsnd netiesioginė ipccall dekodavimas.
- Ištaisyta 64 bitų syscalls dekodavimas. (Adresai Debiano klaida Nr. 570603)
- Ištaisyta "getockopt" dekoduojama architektūrose, kur sizeof (long) & gt; sizeof (int). (Adresai Debiano klaida # 494844)
- Ištaisyta epoll_pwait dekodavimas. (Adresai Debian klaidą # 513014)
- Ištaisyta sunaikintų gijų tvarkymas.
Kas naujo versijoje 4.5.20:
Komentarai nerastas