strace

Software screenshot:
strace
Rincian Software:
Versi: 4.19 Diperbarui
Tanggal Upload: 23 Nov 17
Lisensi: Gratis
Popularitas: 23

Rating: 5.0/5 (Total Votes: 1)

strace adalah perangkat lunak open source dan perangkat lunak bebas yang dirancang untuk pengembang dan administrator sistem, menyediakan pelacak panggilan sistem yang diterapkan di C dan dirancang untuk berjalan secara eksklusif di bawah sistem operasi GNU / Linux.

Program ini sangat berguna untuk debugging, utilitas instruksional dan diagnostik yang dapat mengumpulkan semua panggilan sistem yang dihasilkan oleh sebuah program atau proses, dan mencetak jejak. Ini adalah program baris perintah yang hanya bisa digunakan dari lingkungan konsol atau melalui aplikasi emulator terminal.

Alat ini dapat digunakan oleh ahli diagnosa, pemecah masalah, serta administrator sistem yang menginginkan solusi tak ternilai untuk menyelesaikan masalah dengan program sumber tertutup. Ini ditulis oleh Dmitry V. Levin, Roland McGrath dan Wichert Akkerman.


Opsi baris perintah

Seperti perangkat lunak command-line lainnya, strace menawarkan beragam opsi baris perintah yang memungkinkan pengguna untuk dengan mudah menggunakan semua fungsi dan fiturnya untuk mencapai tugas mereka. Semua opsi baris perintah dapat dilihat sekilas dengan menjalankan & lsquo; strace --help & rsquo; perintah.

Di antara opsi baris perintah yang paling menarik, kita dapat menyebutkan dukungan untuk menghitung waktu, panggilan dan kesalahan untuk setiap syscall, dukungan untuk meringkas latency syscall, dukungan untuk melacak akses ke jalur tertentu, mendukung untuk memungkinkan keluaran debug ke stderr, serta dukungan untuk menjalankan proses pelacak sebagai cucu yang terpisah, bukan sebagai orang tua.

Selain itu, Anda akan dapat mengirim informasi jejak ke file tertentu, bukan stderr, untuk mengatur biaya overhead untuk melacak syscalls ke usec overhead, untuk mengatur file PID untuk proses jejak, untuk membatasi panjang string cetak untuk membuat karakter, menjalankan perintah sebagai username penanganan setgid dan / atau setuid, dan untuk melepaskan pada syscall tertentu.


Memulai dengan strace

strace hanya didistribusikan sebagai tarball sumber, namun dapat dengan mudah diinstal pada banyak distribusi Linux dari repositori perangkat lunak utama mereka. Untuk menginstalnya dari sumber, unduh versi terbaru dari Softoware, simpan arsip di lokasi pilihan Anda dan ekstraknya.

Buka aplikasi Terminal, buka lokasi arsip arsip yang diekstraksi (misalnya cd / home / softoware/strace-4.9), jalankan ./configure && make & rsquo; perintah untuk mengkonfigurasi dan mengkompilasi strace, dan kemudian jalankan & lsquo; make install & rsquo; perintah sebagai root atau & lsquo; sudo make install & rsquo; perintah sebagai user istimewa untuk menginstal strace system wide.

Apa yang baru dalam rilis ini:

  • Perbaikan:
  • Ditambahkan - opsi untuk mencetak informasi protokol dan alamat yang terkait dengan deskriptor soket.
  • Diperpanjang & quot; -e baca = set & quot; dan & quot; -e tulis = set & quot; pilihan untuk menyimpan Sendmsg, recvmsg, sendmmsg, dan recvmmsg syscalls.
  • Mengimplementasikan decoding perintah ioctl 32 bit penuh (alamat bug Debian # 692913 dan bug Fedora # 902788).
  • Menerapkan dukungan API PTRACE_GETREGS pada ia64.
  • Menerapkan dukungan API PTRACE_GETREGS di mips.
  • Menerapkan dukungan API PTRACE_GETREGSET di s390 / s390x.
  • Mengimplementasikan decoding syscalls acak dan seccomp.
  • Mengimplementasikan decoding lengkap set kemampuan 64-bit.
  • Mengimplementasikan decoding dari semua perintah prctl.
  • Mengimplementasikan decoding perintah ioctl parametrized.
  • Mengimplementasikan decoding perintah evocev ioctl.
  • Mengimplementasikan decoding perintah v4l ioctl.
  • Mengimplementasikan decoding perintah SG_IO v4 ioctl.
  • Mengimplementasikan decoding perintah FIFOSZE / FITHAW / FITRIM ioctl.
  • Mengimplementasikan decoding FALLOC_FL_ * flag fallocate.
  • Mengimplementasikan decode rt_sigreturn mask sinyal pada aarch64, x32, dan x86_64.
  • Enhanced socket decoder untuk mendukung soket bluetooth.
  • Peningkatan decoding perintah ioctl yang tidak terdaftar.
  • Enhanced decoding dari gotockopt dan setsockopt syscall.
  • Enhanced decoding dari sysinfo sysinfo.
  • Enhanced decoding struct cmsghdr.
  • Enhanced decoding status menunggu.
  • Dukungan aio yang disempurnakan pada arsitektur non-x86 dengan menggunakan libaio.h eksternal.
  • Tambahkan O_TMPFILE ke daftar flag mode terbuka yang dikenali.
  • Memperbarui daftar konstanta tipe filesystem yang digunakan dalam decoding syscalls keluarga statfs.
  • Daftar lengkap konstanta CAP_ *, PR_ *, PTRACE_ *, SCHED_ *, SO_ *, SOL_ *, SWAP_FLAG_ *, dan TFD_ *.
  • Daftar konstanta sinyal yang diperbarui dari Linux 3.19.
  • Daftar ragam errno yang diperbarui dari Linux 3.19.
  • Daftar perintah ioctl yang diperbarui dari Linux 3.9.
  • Menambahkan entri syscall baru untuk mencocokkan Linux 3.19.
  • Perbaikan bug:
  • Memperbaiki berbagai kesalahan dalam pemetaan antara nomor syscall dan informasi terkait seperti jumlah argumen syscall, nama syscall, dan syscall decoder.
  • Masalah penawaran tetap dalam deskriptor cetak, nama file, nama antarmuka jaringan, anggota struct utsname, nama perangkat / volume perintah BLK * ioctl.
  • Pengunatan uid_t / git_t tetap.
  • Potensi potensi out-of-bounds membaca masalah di getdents / getdents64 decoders.
  • Potensi pembukaan bendera terbuka tetap pada beberapa arsitektur.
  • Desoding tetap struct ifreq.ifr_name.
  • Pengkodean tetap perintah SIOCSIFNAME ioctl.
  • Desoding tetap dari flag RENAME_ * renameat2.
  • Penguraian tetap struktur timah UTIME_NOW / UTIME_OMIT.
  • Desoding tetap dari subcalls ipc tidak langsung pada beberapa arsitektur.
  • Pengkodean tetap fanotify_mark syscall pada arsitektur 32-bit.
  • Desoding tetap struktur stat 32-bit pada arsitektur 64-bit.
  • Desoding tetap dari struct structtrame 32-bit pada arsitektur 64-bit.
  • Pengkodean tetap 32-bit preadv / pwritev diimbangi pada arsitektur 64-bit.
  • Desoding tetap sigreturn / rt_sigreturn masker sinyal pada ia64, ppc, ppc64, sparc, sparc64, mips, dan s390.
  • Instruksi pointer pointer tetap (opsi -i) pada arsitektur yang mendukung beberapa kepribadian.
  • Perilaku tetap & quot; -e baca = set & quot; dan & quot; -e tulis = set & quot; ketika membaca dan menulis set berpotongan.
  • Tetap membangun sistem dimana struct sigaction tidak memiliki member sa_restorer.
  • Membangun tetap dengan uclibc dan musl libc.
  • Portabilitas:
  • Kernel Linux & gt; = 2.5.46 diperlukan. Versi lama tanpa dukungan PTRACE_SETOPTIONS yang layak tidak akan bekerja.
  • Di mips, kernel linux & gt; = 2.6.15 diperlukan. Versi lama tanpa dukungan PTRACE_GETREGS yang layak tidak akan bekerja.
  • Pada s390 dan s390x, kernel linux & gt; = 2.6.27 diperlukan. Versi lama tanpa dukungan PTRACE_GETREGSET yang layak tidak akan bekerja.

Apa yang baru di versi 4.9:

  • Perubahan perilaku:
  • Dukungan OABI yang dinonaktifkan pada sistem ARM EABI secara default, opsi tambah --enable-arm-oabi untuk mengaktifkannya pada waktu konfigurasi.
  • Perbaikan:
  • Menambahkan opsi eksperimental -k untuk mencetak jejak stack setelah setiap syscall yang dilacak.
  • Ditambahkan opsi -w untuk menghasilkan statistik pada latency syscall. (alamat bug Debian # 457497).
  • Dukungan arsitektur ARC yang ditambahkan.
  • Menambahkan dukungan API PTRACE_GETREGS pada PowerPC.
  • Peningkatan libido Bionik dan dukungan musl libc.
  • Peningkatan penelusuran proses kepribadian x86 pada x86_64 dan x32.
  • Peningkatan penelusuran proses kepribadian ARM pada AArch64.
  • Enhanced deteksi kepribadian 32 / 64bit pada PowerPC.
  • Mengimplementasikan decoding add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2, dan request_key syscalls.
  • Penguraian yang dikoreksi dari pilih, pselect, dan io_submit syscalls.
  • Enhanced decoding dari delete_module, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns, dan sync_file_range syscalls.
  • Enhanced decoding dari bitmask sinyal.
  • Enhanced decoding deskriptor file.
  • Enhanced siginfo_t decoding.
  • Pengeditan PF_NETLINK yang disempurnakan.
  • Konstanta CLOCK_ * yang diperbarui (alamat bug Fedora # 1088455).
  • Menambahkan entri syscall baru untuk mencocokkan Linux 3.16.
  • Perbaikan bug:
  • Ditambahkan shmat dan shmdt ke himpunan syscalls pemetaan memori yang terkait.
  • Lepaskan diri dari proses yang dihentikan.
  • Penggodongan fanotify_mark tetap pada arsitektur 32bit.
  • Penguraian offset tetap di syscalls preadv dan pwritev.
  • Desoding pilih tetap untuk glibc dalam mode _FORTIFY_SOURCE.
  • Penguraian tetap dari syscall epoll_ctl dengan argumen EPOLL_CTL_DEL.
  • Tetap membangun kapan dan konflik (alamat bug Fedora # 993384).
  • Miscellaneous koreksi di halaman manual. (Alamat Debian bug # 725987).

Apa yang baru di versi 4.8:

  • Perubahan perilaku:
  • Jika terjadi penghentian strace normal, saat trace output dialihkan ke pipa, strace sekarang menutupnya dan menunggu pemutusan proses pipa sebelum keluar.
  • Perbaikan:
  • Melacak dengan menggunakan API PTRACE_SEIZE (jika tersedia).
  • Menerapkan deteksi kepribadian proses berbasis PTRACE_GETREGSET yang lebih andal pada x86-64 dan x32 (bila tersedia).
  • Ditambahkan -e trace = pilihan memori untuk melacak pemetaan memori yang terkait dengan syscalls.
  • Pilihan terdokumentasi -b.
  • Memungkinkan keluarnya pesan status yang akan ditekan dengan memberi opsi -q dua kali.
  • Ditambahkan dukungan arsitektur AArch64 (alamat bug Debian # 693074 dan bug Fedora # 969858).
  • Menambahkan dukungan untuk arsitektur OpenRISC 1000, Meta, dan Xtensa.
  • Menambahkan dukungan kepribadian tilegx untuk Tile.
  • Dukungan jaringan NOMMU yang disempurnakan.
  • Enhanced decoding dari getdents, mmap, perf_event_open, ptrace, dan syscalls quotactl.
  • Menambahkan entri syscall baru agar sesuai dengan Linux 3.9.
  • Regenerasi daftar nama ioctl yang umum dari Linux 3.9.
  • Memperbarui daftar konstanta errno.
  • Daftar yang diperbarui dari konstanta AF_ *, MADV_ *, MAP_ *, MSG_ *, MS_ *, PF_ *, PR_ *, PTRACE_O_ *, dan TCP_ *.
  • Mengimplementasikan decoding dari UBI ioctls.
  • Dihapus berlebihan & quot; * 32 & quot; nama ioctl.
  • Perbaikan bug:
  • ERESTARTNOINTR Tetap bocor ke userspace pada kernel kuno (alamat bug Fedora # 659382).
  • Pengambilan string rilis kernel tetap (alamat bug Debian # 702309).
  • Desoding tetap dari syscalls xattr (alamat bug Fedora # 885233).
  • Penanganan file dengan nomor inode 64-bit dengan 32-bit strace (alamat bug Fedora # 912790).
  • Petunjuk tembolok tetap di SPARC.
  • Penguraian tetap fadvise64, fallocate, ftruncate64, io_submit, pread, preadv, pwrite, pwritev, readahead, sigaltstack, sink_file_range, sysctl, and truncate64 syscalls.
  • Kategori tetap beberapa syscalls pada sebagian besar arsitektur yang didukung.
  • Penguraian tetap dari non-native 32-bit personality recv [m] msg syscalls.
  • Desoding tetap beberapa syscalls kepribadian 32-bit pada x32.
  • Desoding tetap argumen syscall panjang pada arsitektur ARM, MIPS / o32, PowerPC, S390x, dan Tile.
  • Desoding semtimedop terprogram pada S390x.
  • Regulasi sram_alloc tetap pada Blackfin.
  • Membangun tetap saat process_vm_readv adalah tusukan.
  • Membangun tetap dengan versi libaio.h yang lebih lama.

Apa yang baru di versi 4.7:

  • Ini adalah rilis stabil, dengan perbaikan bug biasa, dukungan yang disempurnakan untuk kernel Linux segar, dan lainnya perbaikan.

Apa yang baru di versi 4.6:

  • Ini adalah rilis stabil, dengan perbaikan bug biasa, dukungan yang disempurnakan untuk kernel Linux segar, dan perbaikan lainnya, termasuk metode baru untuk mengikuti kloning, garpu, dan syscalls dengan menggunakan fasilitas eksplisit kernel Linux untuk melacak pembuatan benang dan proses anak.

Apa yang baru di versi 4.5.20:

  • Perbaikan:
  • Mengimplementasikan decoding syscalls linux baru: inotify_init1, recvmmsg.
  • Mengimplementasikan penguraian dasar syscalls linux baru: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
  • Enhanced decoding syscalls yang baru ditambahkan pada arsitektur non-x86 dengan mengganti decoder kosong dengan parser yang rumit yang diaktifkan sebelumnya untuk x86 / x86-64.
  • Diimplementasikan -C pilihan untuk menggabungkan output reguler dan -c. (Alamat Debian bug # 466196)
  • Enhanced decoding syscalls mbind dan mremap.
  • Kumpulan opsi soket SOL_PACKET yang disempurnakan.
  • Daftar nama ioctl yang direstorasi dari linux 2.6.33.
  • Menambahkan dukungan arsitektur TILE.
  • Perbaikan bug:
  • Membangun tetap dengan header kernel Linux 2.6.32-rc5 +. (Alamat bug Debian # 560516 dan bug Fedora # 539044)
  • Tetap membangun mips.
  • Penanganan sistem Linux tetap tanpa struct statfs64.
  • Sinyal sinyal pelaporan tetap dengan sigreturn pada powerpc.
  • Potensi potensial stack buffer overflow di pilih decoder. (Alamat bug Fedora # 556678)
  • Kesalahan pengulangan ipccall tidak langsung.
  • Pengkodean 64 syscalls yang benar. (Alamat Debian bug # 570603)
  • Dikoreksi dengan benar pada arsitektur yang sizeof (long) & gt; sizeof (int). (Alamat Debian bug # 494844)
  • Penguraian yang dikoreksi dari epoll_pwait. (Alamat Debian bug # 513014)
  • Pengambilan benang terbunuh yang diperbaiki.

Software yang serupa

DBG
DBG

3 Jun 15

ipdbplugin
ipdbplugin

11 May 15

LDasm
LDasm

3 Jun 15

Visual xsltproc
Visual xsltproc

2 Jun 15

Komentar untuk strace

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!