strace

Скриншот программы:
strace
Детали программы:
Версия: 4.19 обновление
Дата загрузки: 23 Nov 17
Тип распространения: Бесплатная
Популярность: 72

Rating: 4.5/5 (Total Votes: 2)

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

Программа представляет собой очень полезную утилиту для отладки, обучения и диагностики, которая может собирать все системные вызовы, созданные программой или процессом, и распечатывать трассировку. Это программа командной строки, которая может использоваться только из среды консоли или через приложение эмулятора терминала.

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


Параметры командной строки

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

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

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


Начало работы с strace

strace распространяется только как исходный tarball, но его можно легко установить на множество дистрибутивов Linux из своих основных хранилищ программного обеспечения. Чтобы установить его из источников, просто загрузите последнюю версию из Softoware, сохраните архив в выбранном вами месте и распакуйте его.

Откройте приложение «Терминал», перейдите в папку извлеченных архивных файлов (например, cd /home/softoware/strace-4.9), запустите ./configure && make & rsquo; команду для настройки и компиляции strace, а затем выполните команду & lsquo; make install & rsquo; команда как root или sudo make install & rsquo; как привилегированный пользователь для установки системы strace.

Что нового в этой версии:

  • Улучшения:
  • Добавлена ​​опция -yy для печати информации протокола и адреса, связанной с дескрипторами сокетов.
  • Расширенный & quot; -e read = set & quot; и "-e write = set" параметры для отправки сообщений sendmsg, 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_ * fallocate.
  • Реализовано декодирование сигнальной маски rt_sigreturn на aarch64, x32 и x86_64.
  • Улучшенный декодер сокетов для поддержки сокетов bluetooth.
  • Расширенное декодирование незарегистрированных команд ioctl.
  • Расширенное декодирование синтаксиса getsockopt и setsockopt.
  • Расширенное декодирование sysinfo syscall.
  • Расширенное декодирование struct cmsghdr.
  • Расширенное декодирование состояния ожидания.
  • Расширенная поддержка aio для архитектур без архитектуры x86 с использованием внешнего libaio.h.
  • Добавлен O_TMPFILE в список распознанных флагов открытого режима.
  • Обновлен список констант типа файловой системы, который используется при декодировании системных вызовов семейства statfs.
  • Обновлены списки констант CAP_ *, PR_ *, PTRACE_ *, SCHED_ *, SO_ *, SOL_ *, SWAP_FLAG_ * и TFD_ *.
  • Обновлены списки сигнальных констант из Linux 3.19.
  • Обновлены списки констант errno из Linux 3.19.
  • Обновлены списки команд ioctl из Linux 3.9.
  • Добавлены новые записи в формате syscall для соответствия Linux 3.19.
  • Исправлены ошибки:
  • Исправлены различные ошибки в сопоставлении между номерами системного вызова и связанной с ним информацией, такие как количество аргументов syscall, имя syscall и декодер syscall.
  • Исправлены проблемы с цитированием в дескрипторах печати, именах файлов, именах сетевых интерфейсов, членах struct utsname, именах устройств / томов команд BLK * ioctl.
  • Исправлено расширение uid_t / git_t.
  • Исправлены потенциальные проблемы чтения вне пределов в декодерах getdents / getdents64.
  • Исправлено ограничение обрыва открытых флагов на некоторых архитектурах.
  • Исправлено декодирование struct ifreq.ifr_name.
  • Исправлено декодирование команды SIOCSIFNAME ioctl.
  • Исправлено расшифрование флажков RENAME_ * renameat2.
  • Исправлено декодирование временных конструкций UTIME_NOW / UTIME_OMIT.
  • Исправлено декодирование косвенных подколов ipc на некоторых архитектурах.
  • Исправлено декодирование syscall для fanotify_mark на 32-разрядных архитектурах.
  • Исправлено декодирование 32-битных структур stat на 64-разрядных архитектурах.
  • Исправлено декодирование 32-разрядной структуры cmsghdr на 64-разрядных архитектурах.
  • Исправлено декодирование 32-битного смещения preadv / pwritev на 64-разрядных архитектурах.
  • Исправлено декодирование сигнальной маски sigreturn / rt_sigreturn на ia64, ppc, ppc64, sparc, sparc64, mips и s390.
  • Исправлен вывод указателя команд (-i) на архитектурах, поддерживающих несколько персонажей.
  • Исправлено поведение "-e read = set" и "-e write = set" когда элементы чтения и записи пересекаются.
  • Исправлено построение на системах, в которых struct sigaction не имеет члена sa_restorer.
  • Исправлена ​​сборка с помощью uclibc и musl libc.
  • Портативность:
  • Требуется ядро ​​Linux & gt; = 2.5.46. Старые версии без приличной поддержки PTRACE_SETOPTIONS не будут работать.
  • В mips требуется linux kernel & gt; = 2.6.15. Старые версии без приличной поддержки PTRACE_GETREGS не будут работать.
  • В s390 и s390x требуется linux kernel & gt; = 2.6.27. Старые версии без приличной поддержки PTRACE_GETREGSET не будут работать.

Что нового в версии 4.9:

  • Изменения в поведении:
  • Отключена поддержка OABI в системах ARM EABI по умолчанию, добавлена ​​опция --enable-arm-oabi, чтобы включить ее во время настройки.
  • Улучшения:
  • Добавлена ​​экспериментальная опция -k для печати трассировки стека после каждого трассируемого syscall.
  • Добавлена ​​опция -w для создания статистики по задержке syscall. (адрес ошибки Debian # 457497).
  • Добавлена ​​поддержка архитектуры ARC.
  • Добавлена ​​поддержка API PTRACE_GETREGS на PowerPC.
  • Расширенная поддержка Bionic libc и musl libc.
  • Расширенное отслеживание процессов личности x86 на x86_64 и x32.
  • Расширенное отслеживание процессов личности ARM на AArch64.
  • Расширенное обнаружение личности 32 / 64bit на PowerPC.
  • Реализовано декодирование системных вызовов add_key, ioprio_get, ioprio_set, kexec_load, keyctl, renameat2 и request_key.
  • Ускоренное декодирование системных вызовов select, pselect и io_submit.
  • Расширенное декодирование объектов delete_module, fanotify_init, fanotify_mark, fcntl, setdomainname, sethostname, setns и sync_file_range.
  • Расширенное декодирование битовых масок сигнала.
  • Расширенное декодирование файловых дескрипторов.
  • Расширенное декодирование siginfo_t.
  • Расширенное декодирование PF_NETLINK.
  • Обновлены константы CLOCK_ * (адреса Fedora bug # 1088455).
  • Добавлены новые записи в syscall для соответствия Linux 3.16.
  • Исправлены ошибки:
  • Добавлены shmat и shmdt для набора связанных с памятью системных вызовов.
  • Исправлено удаление из остановленных процессов.
  • Исправлено дефрагментацию fanotify_mark на 32-битных архитектурах.
  • Исправлено смещение декодирования в превью и pwritev syscalls.
  • Исправлено выделение декодирования для glibc в режиме _FORTIFY_SOURCE.
  • Исправлено декодирование syscall epoll_ctl с аргументом EPOLL_CTL_DEL.
  • Исправлена ​​сборка и конфликты (адреса ошибка Fedora # 993384).
  • Различные исправления на странице руководства. (Адреса Ошибка Debian # 725987).

Что нового в версии 4.8:

  • Изменения в поведении:
  • В случае нормального завершения трассировки, когда вывод трассировки перенаправляется на трубу, strace теперь закрывает его и ждет завершения технологического процесса до выхода.
  • Улучшения:
  • Реализована трассировка с использованием PTRACE_SEIZE API (если доступно).
  • Реализовано более надежное обнаружение личности процесса 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.
  • Добавлены новые записи в syscall для соответствия Linux 3.9.
  • Восстановил список общих имен ioctl из Linux 3.9.
  • Обновлен список констант errno.
  • Обновлены списки констант AF_ *, MADV_ *, MAP_ *, MSG_ *, MS_ *, PF_ *, PR_ *, PTRACE_O_ * и TCP_ *.
  • Реализовано декодирование UBI ioctls.
  • Удалено избыточное & quot; * 32 & quot; имена ioctl.
  • Исправлены ошибки:
  • Исправлена ​​утечка ERESTARTNOINTR в пространство пользователей на древних ядрах (адреса Fedora ошибка # 659382).
  • Исправлен синтаксический анализ строки выпуска ядра (адреса ошибки Debian # 702309).
  • Исправлено декодирование * xattr syscalls (адреса ошибка Fedora # 885233).
  • Исправлена ​​обработка файлов с 64-разрядными номерами inode 32-разрядным strace (адреса ошибка Fedora # 912790).
  • Исправлены вилки трассировки на SPARC.
  • Исправлено расшифрование fadvise64, fallocate, ftruncate64, io_submit, pread, preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl и truncate64.
  • Фиксированные категории нескольких системных вызовов на большинстве поддерживаемых архитектур.
  • Исправлено декодирование нестандартных 32-битных автономных ответов [m] msg syscalls.
  • Исправлено декодирование нескольких 32-битных индивидуальных системных вызовов на x32.
  • Исправлено декодирование длинноволновых аргументов syscall на архитектурах ARM, MIPS / o32, PowerPC, S390x и Tile.
  • Исправлено декодирование семплимида на S390x.
  • Исправлено декодирование sram_alloc на Blackfin.
  • Исправлена ​​сборка, когда process_vm_readv - это удар.
  • Исправлена ​​сборка с более старыми версиями libaio.h.

Что нового в версии 4.7:

  • Это стабильная версия с обычными исправлениями, расширенная поддержка свежих ядер Linux и другие улучшения.

Что нового в версии 4.6:

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

Что нового в версии 4.5.20:

  • Улучшения:
  • Реализовано декодирование новых системных вызовов linux: inotify_init1, recvmmsg.
  • Реализовано базовое декодирование новых системных вызовов linux: preadv, pwritev, rt_tgsigqueueinfo, perf_event_open.
  • Расширенное декодирование недавно добавленных системных вызовов для архитектур, отличных от x86, путем замены голого декодера сложными анализаторами, ранее включенными для x86 / x86-64.
  • Реализована опция -C для объединения регулярного и -c вывода. (Адреса Ошибки Debian # 466196)
  • Расширенное декодирование системных вызовов mbind и mremap.
  • Расширенное декодирование сокетов SOL_PACKET.
  • Регенерированный список имен ioctl из linux 2.6.33.
  • Добавлена ​​поддержка архитектуры TILE.
  • Исправлены ошибки:
  • Исправлена ​​сборка с заголовками ядра Linux 2.6.32-rc5 +. (Адреса Ошибка Debian # 560516 и ошибка Fedora # 539044)
  • Исправлено построение на mips.
  • Исправлена ​​обработка Linux-систем без struct statfs64.
  • Исправлена ​​маска сигнального сигнала sigreturn on powerpc.
  • Исправлено переполнение буфера стека в выбранном декодере. (Адреса Ошибка Fedora # 556678)
  • Исправлено msgsnd косвенное декодирование ipccall.
  • Исправлено декодирование 64-битных системных вызовов. (Адреса Ошибка Debian # 570603)
  • Исправлено декодирование getsockopt на архитектурах, где sizeof (long) & gt; SizeOf (INT). (Адреса Ошибка Debian # 494844)
  • Исправлено декодирование epoll_pwait. (Адреса Ошибка Debian # 513014)
  • Исправлено обращение с убитыми потоками.

Похожие программы

otrace
otrace

20 Feb 15

DBG
DBG

3 Jun 15

termdebug
termdebug

20 Feb 15

Splint
Splint

3 Jun 15

Комментарии к strace

Комментарии не найдены
добавить комментарий
Включите картинки!