strace

Скріншот програми:
strace
Дані програми:
Версія: 4.19 оновлений
Дата завантаження: 23 Nov 17
Ліцензія: Безкоштовно
Популярність: 23

Rating: 5.0/5 (Total Votes: 1)

strace - це програмне забезпечення з відкритим кодом та вільно розподіленим програмним забезпеченням, призначене для розробників та системних адміністраторів, що забезпечує маркер системного виклику, реалізований у С і призначений для роботи виключно в операційних системах GNU / Linux.

Програма є дуже корисною налагодженою, навчальною та діагностичною програмою, яка може збирати всі системні виклики, що генеруються програмою або процесом, і роздруковувати трасування. Це програма командного рядка, яка може використовуватися лише з середовища консолі або через програму емулятора терміналу.

Цей інструмент може використовуватися діагностуючими засобами, засобами усунення несправностей, а також системними адміністраторами, які хочуть безцінного рішення для вирішення проблем із закритими програмами. Це написано Дмитра В. Левіна, Роланда МакГрата і Віхерта Аккермана.


Параметри командного рядка

Як і будь-яке інше програмне забезпечення командного рядка, strace пропонує широкий вибір параметрів командного рядка, які дозволяють користувачеві легко використовувати всі свої функції та функції для виконання своїх завдань. Всі його параметри командного рядка можна переглянути з одного боку, запустивши & lsquo; strace --help & rsquo; команда.

Серед найбільш цікавих параметрів командного рядка ми можемо згадати підтримку для підрахунку часу, викликів та помилок для кожного syscall, підтримку для підведення підсумків ланцюжка syscall, підтримка трасування доступу до певного шляху, підтримка для активації виведення налагодження на stderr, а також підтримку процесу відстеження як окремого внука, а не як батька.

Крім того, ви зможете надсилати інформацію про слід для певного файлу замість stderr, встановлювати накладні витрати для відстеження сисклами на накладні usecs, встановити PID-файл для процесу відстеження, обмежувати довжину рядків друку для розбиття символів, для запуску команд як для керування іменем setgid та / або setuid, а також для відключення певного системного сервера.


Початок роботи з strace

strace розповсюджується як вихідний спосіб, але його можна легко встановити на численні дистрибутиви Linux з їх основних сховищ програмного забезпечення. Щоб встановити його з джерел, просто завантажте останню версію з Softoware, збережіть архів у вибраному вами місці та розпакуйте його.

Відкрийте додаток терміналу, перейдіть до місця вилученого архіву (наприклад, cd /home/softoware/strace-4.9), запустіть ./configure && make & rsquo; команду, щоб налаштовувати та компілювати strace, а потім виконати & lsquo; зробити установку & rsquo; команда як root або "sudo make install & rsquo; команду як привілейованого користувача, щоб встановити систему strace широко.

Що нового в цьому випуску:

  • Поліпшення:
  • Додано параметр -YY для друку протоколу та адресної інформації, пов'язаної з дескрипторами сокетів.
  • Розширені & quot; -e читати = встановити & quot; і & quot; -e написати = встановити & quot; варіанти для посилення відправлень gmail, recvmsg, sendmmsg та recvmmsg.
  • Впроваджено повне 32-розрядне декодування команд ioctl (адреси помилки дебай № 692913 та помилка Fedora # 902788).
  • Здійснено підтримку API PTRACE_GETREGS на ia64.
  • Здійснено підтримку API PTRACE_GETREGS на MIPS.
  • Здійснено підтримку API PTRACE_GETREGSET на s390 / s390x.
  • Впроваджено розшифрування getrandom та seccomp системних викликів.
  • Впроваджено повне декодування 64-розрядних наборів можливостей.
  • Впроваджено декодування всіх команд prctl.
  • Впроваджено декодування параметризованих команд Ioctl.
  • Впроваджено декодування команд evdev ioctl.
  • Впроваджено декодування команд v4l ioctl.
  • Впроваджено декодування SG_IO v4 ioctl команд.
  • Впроваджено декодування команд FIFREEZE / FITHAW / FITRIM ioctl.
  • Впроваджено декодування FALLOC_FL_ * невідповідних прапорців.
  • Впроваджено декодування маски сигналу rt_sigreturn на aarch64, x32 та x86_64.
  • Розширений роз'ємний декодер для підтримки Bluetooth-розеток
  • Розширене декодування непереданих команд Ioctl.
  • Розширене декодування getocopt і setocksopt syscall.
  • Розширене декодування систолітної системи sysinfo.
  • Розширене декодування структури cmsghdr.
  • Розширене декодування статусу очікування.
  • Покращена підтримка aio на архітектурах, що не є x86, за допомогою зовнішнього libaio.h.
  • Додано O_TMPFILE до списку визнаних прапорів відкритого режиму.
  • Оновлений список констант типу файлової системи, який використовується для декодування сімейних системних символів statfs.
  • Оновлені списки констант CAP_ *, PR_ *, PTRACE_ *, SCHED_ *, SO_ *, SOL_ *, SWAP_FLAG_ * та TFD_ *.
  • Оновлені списки констант сигналу з Linux 3.19.
  • Оновлені списки констант errno з версії 3.19.
  • Оновлені списки команд ioctl з Linux 3.9.
  • Додано нові записи системи, щоб вони відповідали Linux 3.19.
  • Виправлено помилки:
  • Виправлено різні помилки при відображення між номерами syscall та пов'язаною інформацією, такою як кількість аргументів syscall, ім'я syscall та декодер syscall.
  • Виправлено помилки цитування в дескрипторах друку, іменах файлів, іменах мережевих інтерфейсів, структурах utsname членів, назв пристроїв / томів команд BLOCK * ioctl.
  • Виправлено декодування uid_t / git_t.
  • Виправлені неполадки, що виходять за межі, читають проблеми в декодерах getdents / getdents64.
  • Виправлена ​​можливість вилучення з відкритими прапорами у деяких архітектурах.
  • Виправлено декодування struct ifreq.ifr_name.
  • Виправлено декодування команди SIOCSIFNAME ioctl.
  • Виправлено декодування RENAME_ * renameat2 прапорів.
  • Виправлено декодування структур часу UTIME_NOW / UTIME_OMIT.
  • Виправлено декодування непрямими підзаголовками ipc в деяких архітектурах.
  • Виправлено декодування fanotify_mark syscall на 32-розрядних архітектурах.
  • Виправлено декодування 32-бітних структур stat в 64-розрядні архітектури.
  • Виправлено декодування 32-бітної структури cmsghdr на 64-розрядних архітектурах.
  • Фіксоване декодування 32-розрядного зміщення преадва / pwritev на 64-розрядні архітектури.
  • Виправлено дешифрування сигнальної маски sigreturn / rt_sigreturn на ia64, ppc, ppc64, sparc, sparc64, mips та s390.
  • Виправлено вказівник покажчика інструкцій (-i опція) в архітектурах, які підтримують декілька персонажів.
  • Виправлено поведінку & quot; -e читати = встановити & quot; і & quot; -e написати = встановити & quot; коли перетинаються набори для читання та запису.
  • Виправлено будувати на системах, де структура sigaction не має члена sa_restorer.
  • Виправлено збирання за допомогою uclibc та musl libc.
  • Портативність:
  • Linux kernel> = 2.5.46 обов'язково. Старі версії без пристойної підтримки PTRACE_SETOPTIONS не працюватимуть.
  • На MIPS, ядро ​​linux & gt; = 2.6.15 обов'язкове. Старі версії без пристойної підтримки PTRACE_GETREGS не працюватимуть.
  • Для s390 та s390x потрібне ядро ​​linux> 2.6.27. Старі версії без пристойної підтримки PTRACE_GETREGSET не працюватимуть.

Що нового у версії 4.9:

  • Зміни поведінки:
  • Відключена підтримка OABI в системах ARM EABI за умовчанням, додано параметр --enable-arm-oabi, щоб увімкнути його під час налаштування.
  • Покращення:
  • Додано експериментальну опцію -k для друку стеку стеку після кожного трасування сискла.
  • Додано параметр -w для створення статистики затримки syscall. (адреси помилки дебай № 457497).
  • Додана архітектура підтримки архітектури.
  • Додано підтримку API PTRACE_GETREGS на PowerPC.
  • Покращена підтримка bionic libc та musl libc.
  • Покращена відстеження процесів особистості x86 на x86_64 і x32.
  • Покращена відстеження процесів особистості ARM на основі AArch64.
  • Розширене виявлення особистості на 32/64 біт на PowerPC.
  • Впроваджено декодування add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2 та request_key syscalls.
  • Роботизоване декодування вибору, pselect та io_submit syscalls.
  • Розширене декодування видалених_модулів, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns та sync_file_range системних викликів.
  • Розширене декодування бітового масиву сигналу.
  • Розширене декодування дескрипторів файлів.
  • Розширене декодування siginfo_t.
  • Розширене декодування PF_NETLINK.
  • Оновлені CLOCK_ * константи (адреси помилка Fedora # 1088455).
  • Додано нові записи системи, щоб вони відповідали Linux 3.16.
  • Виправлено помилки:
  • Додано shmat і shmdt до набору відповідних системних символів для відображення пам'яті.
  • Виправлено від'єднання від зупинених процесів.
  • Виправлено декодування fanotify_mark на 32-бітові архітектури.
  • Виправлено дешифрування офсет у попередніх і перенаправлених файлах.
  • Виправлено вибір декодування для 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 = memory для відстеження відповідних системних символів для відображення пам'яті.
  • Документований варіант -b.
  • Дозволені повідомлення про статус завершення, які потрібно придушити, двічі даючи параметр -q
  • Додана підтримка архітектури AArch64 (адреси помилки дебай № 693074 та помилка Fedora # 969858).
  • Додана підтримка для архітектури OpenRISC 1000, Meta і Xtensa.
  • Додана підтримка особистості tilegx для Tile.
  • Покращена підтримка архітектури NOMMU.
  • Розширене розшифрування getdents, mmap, perf_event_open, ptrace та quotactl syscalls.
  • Додано нові записи системи, щоб вони відповідали Linux 3.9.
  • Відтворено список загальних назв ioctl з Linux 3.9.
  • Оновлений список констант errno.
  • Оновлені списки конфігурацій AF_ *, MADV_ *, MAP_ *, MSG_ *, MS_ *, PF_ *, PR_ *, PTRACE_O_ * та TCP_ *.
  • Впроваджено декодування ікотлів UBI
  • Вилучено надмірне & quot; * 32 & quot; ioctl імена.
  • Виправлено помилки:
  • Виправлено помилку ERESTARTNOINTR для користувачів у старих ядрах (адреси помилки Fedora # 659382).
  • Виправлена ​​помилка строку випуску реєстру ядра (адреси помилки дебай № 702309).
  • Виправлено декодування * xattr syscalls (адреси помилки Fedora # 885233).
  • Виправлена ​​обробка файлів з 64-розрядними ізодними числами на 32-бітному режимі (адреса Fedora помилка # 912790).
  • Виправлено трасування вилки на SPARC
  • Виправлено декодування fadvise64, flawed, ftruncate64, io_submit, pread, preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl та truncate64.
  • Виправлені категорії декількох системних викликів у більшості підтримуваних архітектур.
  • Фіксоване декодування невластивих 32-розрядних персонажів recv [m] msg syscalls.
  • Виправлено декодування декількох 32-розрядних системних символів на x32.
  • Виправлено декодування довгих аргументів на архітектурі ARM, MIPS / o32, PowerPC, S390x та Tile.
  • Виправлено декодування semtimedop на S390x.
  • Виправлено розпізнавання sram_alloc на Blackfin.
  • Виправлено збирання, коли process_vm_readv є стуком.
  • Виправлено збирання зі старими версіями libaio.h.

Що нового у версії 4.7:

  • Це стабільний реліз, з звичайними виправленнями помилок, розширеною підтримкою нових ядрами Linux та іншими. покращення.

Що нового у версії 4.6:

  • Це стабільний реліз з звичайними виправленнями, для свіжих ядер Linux та інших покращень, включаючи новий метод наступного виклику клонів, вилок і vfork, використовуючи явні можливості ядра Linux для відстеження створення потоків та дочірніх процесів.

Що нового у версії 4.5.20:

  • Поліпшення:
  • Впроваджено декодування нових системних викликів linux: inotify_init1, recvmmsg.
  • Виконано основне розшифрування нових системних викликів linux: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
  • Розширене декодування нещодавно доданих системних ресурсів на архітектуру, що не входить до складу 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)
  • Виправлено завантаження на mips.
  • Виправлена ​​обробка систем Linux без структури statfs64.
  • Фіксована маска сигналу звітування за допомогою sigreturn на PowerPC.
  • Виправлений переповнення буфера потенційного стеку в обраному декодері. (Адреса помилки Fedora № 556678)
  • Виправлено msgsnd непрямий ipccall декодування.
  • Виправлено розшифрування 64-разрядних системних викликів. (Адреса помилки Debian # 570603)
  • Виправлено декодування декодування getockopt на архітектуру, де sizeof (довгий) & gt; sizeof (int). (Адреса помилки Debian # 494844)
  • Виправлено декодування epoll_pwait. (Адреса помилки Debian # 513014)
  • Виправлена ​​обробка вбитих потоків.

Схожі програми

PyXMPP
PyXMPP

11 May 15

dprintf
dprintf

20 Feb 15

radare
radare

11 May 15

strace

Коментар не знайдено
додати коментар
Включіть картинки!
Пошук за категоріями