strace

Phần mềm chụp màn hình:
strace
Các chi tiết về phần mềm:
Phiên bản: 4.19 Cập nhật
Ngày tải lên: 23 Nov 17
Giấy phép: Miễn phí
Phổ biến: 72

Rating: 4.5/5 (Total Votes: 2)

strace là một phần mềm mã nguồn mở và phân phối tự do được thiết kế dành cho các nhà phát triển và quản trị hệ thống, cung cấp hệ thống theo dõi cuộc gọi được thực hiện trong C và được thiết kế để chạy độc quyền dưới hệ điều hành GNU / Linux.

Chương trình là một tiện ích gỡ lỗi rất hữu ích, tiện ích hướng dẫn và chẩn đoán có thể thu thập tất cả các cuộc gọi hệ thống được tạo ra bởi một chương trình hoặc một quá trình và in ra một dấu vết. Đó là một chương trình dòng lệnh chỉ có thể được sử dụng từ môi trường điều khiển hoặc thông qua ứng dụng mô phỏng thiết bị đầu cuối.

Công cụ này có thể được sử dụng bởi các nhà chẩn đoán, trình gỡ rối, cũng như quản trị viên hệ thống, những người muốn có một giải pháp vô giá để giải quyết các vấn đề với các chương trình nguồn đóng. Nó được viết bởi Dmitry V. Levin, Roland McGrath và Wichert Akkerman.


Tùy chọn dòng lệnh
Giống như bất kỳ phần mềm dòng lệnh nào khác, strace cung cấp nhiều tùy chọn dòng lệnh cho phép người dùng dễ dàng sử dụng tất cả các tính năng và tính năng của nó để đạt được các nhiệm vụ của họ. Tất cả các tùy chọn dòng lệnh của nó có thể được xem trong nháy mắt bằng cách chạy & lsquo; strace --help & rsquo; lệnh.

Trong số các tùy chọn dòng lệnh thú vị nhất, chúng ta có thể đề cập đến hỗ trợ đếm thời gian, các cuộc gọi và lỗi cho mỗi syscall, hỗ trợ tóm tắt độ trễ của syscall, hỗ trợ truy xuất các truy cập vào một đường dẫn nhất định, hỗ trợ cho phép khởi tạo lỗi cho stderr, cũng như hỗ trợ để chạy một quá trình tracer như là một đứa cháu ngoại trừ, không phải là cha mẹ.

Ngoài ra, bạn sẽ có thể gửi thông tin theo dõi đến một tệp tin cụ thể thay vì stderr, để thiết lập phí cho việc theo dõi các syscalls tới một usecs trên cao, để thiết lập một tệp PID cho quá trình theo dõi, để hạn chế độ dài chuỗi in để chạy các lệnh như tên người dùng xử lý setgid và / hoặc setuid, và tách ra trên một syscall cụ thể.


Bắt đầu với strace

strace chỉ được phân phối như là một tarball nguồn, nhưng nó có thể dễ dàng cài đặt trên rất nhiều phân phối của Linux từ các kho phần mềm chính của họ. Để cài đặt nó từ các nguồn, chỉ cần tải về phiên bản mới nhất từ ​​Softoware, lưu kho lưu trữ vào vị trí bạn chọn và giải nén.

Mở ứng dụng Terminal, đi tới vị trí của các tệp tin lưu trữ trích xuất (ví dụ cd /home/softoware/strace-4.9), chạy ./configure && make & rsquo; lệnh để cấu hình và biên dịch strace, và sau đó thực hiện lệnh & lsquo; make install & rsquo; lệnh dưới dạng gốc hoặc lệnh & lsquo; sudo make install & rsquo;

Có gì mới trong phiên bản này:

  • Cải tiến:
  • Thêm tùy chọn để in ra giao thức và thông tin địa chỉ liên quan đến bộ mô tả socket.
  • Mở rộng & quot; -e read = set & quot; và & quot; -e write = set & quot; các tùy chọn để bao gồm các tập tin hệ thống sendmsg, recvmsg, sendmmsg và recvmmsg.
  • Thực hiện giải mã 32-bit đầy đủ các lệnh ioctl (địa chỉ lỗi Debian # 692913 và lỗi Fedora # 902788).
  • Thực hiện hỗ trợ PTRACE_GETREGS API trên ia64.
  • Thực hiện hỗ trợ PTRACE_GETREGS API trên mips.
  • Thực hiện hỗ trợ PTRACE_GETREGSET API trên s390 / s390x.
  • Thực hiện giải mã các hệ thống tập hợp getrandom và seccomp.
  • Thực hiện giải mã hoàn chỉnh các bộ năng lực 64-bit.
  • Thực hiện giải mã tất cả các lệnh prctl.
  • Thực hiện giải mã các lệnh ioctl đã được parametrized.
  • Thực hiện giải mã lệnh evoev ioctl.
  • Thực hiện giải mã các lệnh ioctl v4l.
  • Thực hiện giải mã lệnh SG_IO v4 ioctl.
  • Thực hiện giải mã lệnh FIFREEZE / FITHAW / FITRIM ioctl.
  • Thực hiện giải mã FALLOC_FL_ * flag fallocate.
  • Thực hiện giải mã mặt nạ tín hiệu rt_sigreturn trên aarch64, x32 và x86_64.
  • Bộ giải mã ổ cắm nâng cao hỗ trợ ổ cắm bluetooth.
  • Giải mã hóa các lệnh ioctl không được liệt kê.
  • Giải mã cao hơn của getsockopt và setsockopt syscall.
  • Giải mã nâng cao của sysinfo syscall.
  • Tăng giải mã của struct cmsghdr.
  • Giải mã trạng thái chờ đợi nâng cao.
  • Tăng cường hỗ trợ aio trên kiến ​​trúc không phải x86 bằng cách sử dụng libaio.h bên ngoài.
  • Đã thêm O_TMPFILE vào danh sách các cờ chế độ mở được công nhận.
  • Cập nhật danh sách các hằng số hệ thống tập tin được sử dụng trong việc giải mã các bộ sưu tập gia đình của statfs.
  • Cập nhật danh sách các ký tự CAP_ *, PR_ *, PTRACE_ *, SCHED_ *, SO_ *, SOL_ *, SWAP_FLAG_ * và TFD_ *.
  • Cập nhật danh sách hằng số tín hiệu từ Linux 3.19.
  • Cập nhật danh sách các hằng số errno từ Linux 3.19.
  • Cập nhật danh sách các lệnh ioctl từ Linux 3.9.
  • Thêm mục nhập syscall mới để khớp với Linux 3.19.
  • Sửa lỗi:
  • Cố định nhiều lỗi khác nhau trong việc ánh xạ giữa số syscall và thông tin liên quan như số đối số syscall, tên của syscall và bộ giải mã syscall.
  • Cố định vấn đề trích dẫn trong trình mô tả in, tên tệp, tên giao diện mạng, thành viên cấu trúc utsname, tên thiết bị / thể tích của các lệnh BLK * ioctl.
  • Cố định giải mã uid_t / git_t.
  • Cố định khả năng vượt ra ngoài giới hạn đọc các vấn đề trong bộ giải mã getdents / getdents64.
  • Cố định cờ mở các cột tiềm ẩn đối với một số kiến ​​trúc.
  • Giải quyết sự giải mã của struct ifreq.ifr_name.
  • Giải quyết giải mã lệnh SIOCSIFNAME ioctl.
  • Giải quyết giải mã RENAME_ * renameat2 flags.
  • Chỉnh sửa cố định cấu trúc timeless của UTIME_NOW / UTIME_OMIT.
  • Giải quyết giải mã các phân vùng gián tiếp ipc trên một số kiến ​​trúc.
  • Giải quyết bộ giải mã của fanotify_mark syscall trên kiến ​​trúc 32-bit.
  • Giải quyết giải mã các cấu trúc stat 32-bit trên kiến ​​trúc 64-bit.
  • Cố định giải mã cấu trúc 32-bit cmsghdr trên kiến ​​trúc 64-bit.
  • Giải quyết sự giải mã của preadv / pwritev 32-bit bù đắp trên kiến ​​trúc 64-bit.
  • Giải quyết giải mã màn hình tín hiệu sigreturn / rt_sigreturn trên ia64, ppc, ppc64, sparc, sparc64, mips và s390.
  • Chỉ dẫn con trỏ cố định (-i tùy chọn) trên kiến ​​trúc hỗ trợ nhiều tính cách.
  • Cố định hành vi của & quot; -e read = set & quot; và & quot; -e write = set & quot; khi đọc và viết tập giao nhau.
  • Cố định xây dựng trên các hệ thống nơi struct sigaction không có thành viên sa_restorer.
  • Cố định xây dựng với uclibc và musl libc.
  • Khả năng di chuyển:
  • Linux kernel & gt; = 2.5.46 là bắt buộc. Các phiên bản cũ hơn không có hỗ trợ PTRACE_SETOPTIONS phong nha sẽ không hoạt động.
  • Trên mips, linux kernel & gt; = 2.6.15 là bắt buộc. Các phiên bản cũ hơn không có hỗ trợ PTRACE_GETREGS phong nha sẽ không hoạt động.
  • Trên s390 và s390x, cần phải có kernel linux & gt; = 2.6.27. Các phiên bản cũ hơn không có hỗ trợ PTRACE_GETREGSET phong nha sẽ không hoạt động.

  • Tính năng mới trong phiên bản 4.9:

    • Thay đổi hành vi:
    • Tắt hỗ trợ OABI trên các hệ thống ARM EABI theo mặc định, tùy chọn --enable-arm-oabi để cho phép nó định cấu hình thời gian.
    • Cải tiến:
    • Thêm tùy chọn thử nghiệm -k để in dấu vết ngăn xếp sau mỗi lần truy xuất syscall.
    • Thêm tùy chọn -w để tạo thống kê về độ trễ của syscall. (địa chỉ lỗi Debian # 457497).
    • Thêm hỗ trợ kiến ​​trúc ARC.
    • Thêm hỗ trợ PTRACE_GETREGS API trên PowerPC.
    • Nâng cấp hỗ trợ libc và libc của Bionic.
    • Theo dõi nâng cao các quá trình nhân cách x86 trên x86_64 và x32.
    • Theo dõi nâng cao các quá trình nhân cách ARM trên AArch64.
    • Phát hiện nhân cách 32 / 64bit nâng cao trên PowerPC.
    • Thực hiện giải mã add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2 và các syscalls request_key.
    • Giải mã được hiệu chỉnh các bộ sưu tập lựa chọn, pselect và io_submit.
    • Giải mã được nâng cao của delete_module, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns và sync_file_range syscalls.
    • Giải mã bitmasks nâng cao.
    • Giải mã bộ giải mã tập tin nâng cao.
    • Giải mã siginfo_t nâng cao.
    • Giải mã PF_NETLINK nâng cao.
    • Đã cập nhật các số liệu CLOCK_ * (địa chỉ lỗi Fedora # 1088455).
    • Nhập mục nhập syscall mới để khớp với Linux 3.16.
    • Sửa lỗi:
    • Thêm shmat và shmdt vào bộ bộ nhớ ánh xạ các syscalls có liên quan.
    • Cố định tách khỏi quá trình ngừng.
    • Cố định fanotify_mark giải mã trên kiến ​​trúc 32 bit.
    • Giải quyết sự giải mã bù đắp trong hệ thống syscalls của preadv và pwritev.
    • Cố định chọn giải mã cho glibc trong chế độ _FORTIFY_SOURCE.
    • Giải quyết giải mã epoll_ctl syscall với đối số EPOLL_CTL_DEL.
    • Cố định xây dựng khi nào và xung đột (địa chỉ lỗi Fedora # 993384).
    • Sửa đổi khác trong trang hướng dẫn sử dụng. (Địa chỉ lỗi Debian # 725987).

    • Tính năng mới trong phiên bản 4.8:

      • Thay đổi hành vi:
      • Trong trường hợp chấm dứt bình thường, khi đầu ra dấu vết được chuyển hướng đến một đường ống, strace bây giờ đóng nó và chờ cho việc chấm dứt quá trình ống trước khi thoát.
      • Cải tiến:
      • Thực hiện truy tìm bằng API PTRACE_SEIZE (nếu có).
      • Thực hiện phát hiện cá nhân quy trình dựa trên PTRACE_GETREGSET đáng tin cậy hơn trên x86-64 và x32 (nếu có).
      • Đã thêm -e trace = tùy chọn bộ nhớ để truy tìm các bản ghi nhớ có liên quan đến bản đồ bộ nhớ.
      • Tài liệu -b tùy chọn.
      • Có thể cho phép các thông báo trạng thái thoát ra được tạm dừng bằng cách đưa ra -q hai lần.
      • Thêm hỗ trợ kiến ​​trúc AArch64 (địa chỉ lỗi Debian # 693074 và lỗi Fedora # 969858).
      • Thêm hỗ trợ OpenRISC 1000, Meta và kiến ​​trúc Xtensa.
      • Thêm hỗ trợ cá nhân của tilegx cho Tile.
      • Tăng cường hỗ trợ kiến ​​trúc NOMMU.
      • Tăng cường giải mã getdents, mmap, perf_event_open, ptrace, và các hệ thống tập lệnh quotactl.
      • Thêm mục nhập syscall mới để khớp với Linux 3.9.
      • Đã tạo lại danh sách các tên ioctl phổ biến từ Linux 3.9.
      • Đã cập nhật danh sách các hằng số errno.
      • Cập nhật danh sách các ký tự AF_ *, MADV_ *, MAP_ *, MSG_ *, MS_ *, PF_ *, PR_ *, PTRACE_O_ * và các hằng số TCP_ *.
      • Thực hiện giải mã Uo iCloud của UBI.
      • Xoá dư thừa & quot; * 32 & quot; tên ioctl.
      • Sửa lỗi:
      • Cố định ERESTARTNOINTR rò rỉ tới vùng người dùng trên các hạt nhân cổ (địa chỉ lỗi Fedora # 659382).
      • Phát hành chuỗi chuỗi phát hành cố định (địa chỉ lỗi của Debian # 702309).
      • Giải quyết bộ giải mã của * xattr syscalls (địa chỉ lỗi Fedora # 885233).
      • Xử lý cố định các tệp có số inode 64 bit bằng lệnh 32-bit strace (địa chỉ lỗi Fedora # 912790).
      • Sửa dấu vết tìm kiếm trên SPARC.
      • Giải quyết sự giải mã của fadvise64, fallocate, ftruncate64, io_submit, pread, preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl và truncate64 syscalls.
      • Cố định các loại của nhiều syscalls trên hầu hết các kiến ​​trúc được hỗ trợ.
      • Giải quyết sự giải mã của cá tính 32-bit không phải là nguyên nhân [m] msg syscalls.
      • Giải quyết sự giải mã của nhiều syscalls cá nhân 32-bit trên x32.
      • Giải quyết giải mã các đối số syscall dài về kiến ​​trúc ARM, MIPS / o32, PowerPC, S390x và Tile.
      • Đã giải mã giải mã semtimedop trên S390x.
      • Giải mã được giải mã sram_alloc trên Blackfin.
      • Xử lý cố định khi process_vm_readv là đâm
      • Cố định xây dựng với các phiên bản cũ của libaio.h.

      Tính năng mới trong phiên bản 4.7:

      • Đây là bản phát hành ổn định với các lỗi sửa lỗi thông thường, hỗ trợ nâng cao cho hạt nhân Linux tươi và cải tiến.

      • Đây là bản phát hành ổn định, với các bản sửa lỗi thông thường, hỗ trợ nâng cao

      cho các hạt nhân Linux mới và những cải tiến khác, bao gồm một phương pháp tiếp cận mới sau các bản sao lưu clone, fork và vfork bằng cách sử dụng các cơ sở rõ ràng của hạt nhân Linux để theo dõi việc tạo các chủ đề và quá trình con.

      Tính năng mới trong phiên bản 4.5.20:

      • Cải tiến:
      • Thực hiện giải mã các syscalls linux mới: inotify_init1, recvmmsg.
      • Thực hiện giải mã cơ bản của các syscalls linux mới: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
      • Giải mã nâng cao các syscalls mới được thêm vào các kiến ​​trúc không phải là x86 bằng cách thay thế bộ giải mã trần với các trình phân tích cú pháp được kích hoạt trước đó cho x86 / x86-64.
      • Thực hiện -C tùy chọn để kết hợp đầu ra thường xuyên và -c. (Địa chỉ lỗi Debian # 466196)
      • Tăng cường giải mã hệ thống tập tin mbind và mremap.
      • Tùy chọn giải mã ổ cắm SOL_PACKET nâng cao.
      • Danh sách tên ioctl đã được tạo lại từ linux 2.6.33.
      • Đã hỗ trợ kiến ​​trúc TILE.
      • Sửa lỗi:
      • Cố định xây dựng với tiêu đề hạt nhân Linux 2.6.32-rc5 +. (Địa chỉ lỗi Debian # 560516 và lỗi Fedora # 539044)
      • Cố định xây dựng trên mips.
      • Xử lý cố định các hệ thống Linux mà không có cấu trúc statfs64.
      • Sửa mặt nạ báo tín hiệu cố định bằng sigreturn trên powerpc.
      • Cố định tràn bộ đệm tiềm ẩn tiềm ẩn trong bộ giải mã chọn. (Địa chỉ lỗi Fedora # 556678)
      • Chỉnh sửa mscusnd gián tiếp ipccall giải mã.
      • Sửa giải mã của các syscalls 64bit. (Địa chỉ Debian bug # 570603)
      • Giải mã bộ giải mã getsockopt được khắc phục trên kiến ​​trúc ở đó sizeof (dài) & gt; sizeof (int). (Địa chỉ Debian bug # 494844)
      • Sửa giải mã epoll_pwait. (Địa chỉ lỗi Debian # 513014)
      • Chỉnh sửa xử lý các chủ đề bị khóa.

Phần mềm tương tự

WingDBG
WingDBG

20 Feb 15

GDB
GDB

16 Aug 18

dprintf
dprintf

20 Feb 15

BuGLe
BuGLe

17 Feb 15

Ý kiến ​​để strace

Bình luận không
Nhập bình luận
Bật hình ảnh!