след

Диагностическая, отладочная и обучающая утилита пользовательского пространства для Linux
след
Оригинальный автор(ы)Пол Краненбург
Разработчик(и)Дмитрий Левин
Стабильный релиз
6.11 [1]  / 15 сентября 2024 г. ; 58 дней назад ( 15 сентября 2024 г. )
Репозиторий
  • github.com/strace/strace
Написано вС [2]
Операционная системалинукс
ПлатформаAArch64 , DEC Alpha , ARC , ARM EABI/OABI , AVR32 , Blackfin , C-SKY, HP PA-RISC , IA-32 , IA-64 , LoongArch , Motorola 68k , Imagination META , MicroBlaze , MIPS , Nios II , OpenRISC , Power ISA 32/64 бит, RISC-V , System/390 / z/Architecture , SuperH 32/64 бит, SPARC 32/64 бит, TILE , TILEPro , TILE-Gx , x86-64 , x32 ABI , Xtensa
Доступно вАнглийский [примечание 1]
ТипОтладка
ЛицензияLGPL v2.1+ [примечание 2] [4]
Веб-сайтstrace.io 

strace — это диагностическая, отладочная и обучающая утилита пользовательского пространства для Linux . Она используется для мониторинга и вмешательства во взаимодействия между процессами и ядром Linux , включая системные вызовы , доставку сигналов и изменение состояния процесса. Работа strace возможна благодаря функции ядра, известной как ptrace .

Некоторые Unix-подобные системы предоставляют другие диагностические инструменты, похожие на strace, например truss .

История

Strace был первоначально написан для SunOS Полом Краненбургом в 1991 году, согласно его уведомлению об авторских правах, и опубликован в начале 1992 года в третьем томе comp.sources.sun. Первоначальный файл README содержал следующее: [5]

strace(1) — это трассировщик системных вызовов для систем Sun(tm), очень похожий на поставляемую Sun программу trace(1) . strace(1) — это полезная утилита для сортировки отладочных программ, для которых нет исходного кода, которая, к сожалению, включает в себя почти все поставляемое Sun системное программное обеспечение.

Позже Бранко Ланкестер перенес эту версию на Linux , выпустив свою версию в ноябре 1992 года, а второй релиз последовал в 1993 году. [6] [7] Ричард Слэдки объединил эти отдельные версии strace в 1993 году и перенес программу на SVR4 и Solaris в 1994 году, [8] что привело к появлению strace 3.0, анонсированной в comp.sources.misc в середине 1994 года. [9]

Начиная с 1996 года, strace поддерживал Wichert Akkerman. Во время его пребывания в должности разработка strace перешла на CVS ; были представлены порты на FreeBSD и многие архитектуры на Linux (включая ARM, IA-64, MIPS, PA-RISC, PowerPC, s390, SPARC). В 2002 году бремя поддержки strace было передано Roland McGrath. С тех пор strace получил поддержку нескольких новых архитектур Linux (AMD64, s390x, SuperH), поддержку двух архитектур для некоторых из них и получил многочисленные дополнения и улучшения в декодерах системных вызовов на Linux; разработка strace перешла на git в этот период. С 2009 года strace активно поддерживается Дмитрием Левиным. С тех пор strace получила поддержку архитектур AArch64, ARC, AVR32, Blackfin, Meta, Nios II, OpenSISC 1000, RISC-V, Tile/TileGx, Xtensa.

Последняя версия strace, которая имела некоторый (очевидно, мертвый) [10] код для операционных систем, отличных от Linux, была 4.6, выпущенная в марте 2011 года. [11] В версии strace 4.7, выпущенной в мае 2012 года, [12] весь код, не относящийся к Linux, был удален; [13] начиная с strace 4.13, [14] проект следует графику выпуска ядра Linux, а начиная с версии 5.0, [15] он также следует схеме версионирования Linux.

В 2012 году strace также получила поддержку трассировки пути и декодирования пути дескриптора файла. [16] В августе 2014 года был выпущен strace 4.9, [17] [18] в котором была добавлена ​​поддержка печати трассировок стека. В декабре 2016 года [19] [20] была реализована функция внедрения ошибок системных вызовов .

История версий

ВерсияДата выпускаЗаметные изменения
6.226 февраля 2023 г. [21]Реализовано разрешение коллизий для перекрывающихся команд ioctl терминала/звука.
6.112 декабря 2022 г. [22]Улучшенное декодирование statxкоманд syscall и терминала ioctl
6.029 октября 2022 г. [23]Улучшенное декодирование команд setnssyscall и PTP_*ioctl
5.1912 августа 2022 г. [24]Маркер "(deleted)" несвязанных путей дескрипторов файлов больше не интерпретируется как часть пути; улучшено декодирование системных вызовов arch_prctl, io_uring_register, и prctl; улучшено декодирование siginfo_tструктуры
5.1818 июня 2022 г. [25]
5.1726 марта 2022 г. [26]Добавлена ​​поддержка нового set_mempolicy_home_nodeсистемного вызова в Linux.
5.1610 января 2022 г. [27]Добавлена ​​поддержка печати несоответствий контекста SELinux ( --secontext=mismatchопция); добавлена ​​поддержка нового futex_waitvсистемного вызова в Linux
5.151 декабря 2021 г. [28]
5.142 сентября 2021 г. [29]Добавлена ​​поддержка декодирования новых memfd_secretи quotactl_fdсистемных вызовов.
5.1318 июля 2021 г. [30]Реализована поддержка System Call Vectored ABI на архитектуре IBM POWER
5.1226 апреля 2021 г. [31]Добавлена ​​поддержка нового mount_setattrдекодирования системных вызовов.
5.1117 февраля 2021 г. [32]Добавлена ​​опция для внедрения данных при входе/выходе системного вызова ( poke_enter=и poke_exit=параметры опции --inject); добавлена ​​поддержка нового epoll_pwait2декодирования системных вызовов; реализовано декодирование команд FS_IOC_FS[GS]ETXATTR, FS_IOC{,32}_[GS]ETFLAGS, GPIO_*, SIOCADDMULTI, SIOCDELMULTI, SIOCGIFENCAP, SIOCOUTQNSD, SIOCSIFENCAP, SIOCSIFHWBROADCAST, UBI_IOCRPEB, UBI_IOCSPEB, V4L2_BUF_TYPE_META_CAPTURE, V4L2_BUF_TYPE_META_OUTPUT, и VIDIOC_QUERY_EXT_CTRLioctl
5.1014 декабря 2020 г. [33]Поддерживается трассировка стека для неродных личностей при компиляции с помощью libdw; добавлена ​​поддержка process_madviseдекодирования системных вызовов
5.924 сентября 2020 г. [34]Добавлена ​​поддержка close_rangeдекодирования системных вызовов; добавлена ​​поддержка TEE_*декодирования ioctl; реализовано декодирование {msg,msq,sem}infoи {msg,msq,sem}id_dsструктур, используемых в соответствующих командах системных вызовов System V IPC
5.86 августа 2020 г. [35]Изменен список системных вызовов, охватываемых группой %process, чтобы он содержал системные вызовы, связанные с жизненным циклом процесса: kill, tkill, tgkill, pidfd_send_signal, и rt_sigqueueinfoбыли добавлены arch_prctlи unshareудалены; добавлена ​​поддержка faccessat2декодирования системных вызовов; добавлена ​​поддержка LOOP_CONFIGUREдекодирования ioctl
5.71 июня 2020 г. [36]
5.67 апреля 2020 г. [37]Добавлены длинные псевдонимы опций, а также возможности для более точной спецификации опций с помощью опций -e quiet/ --quiet, -e decode-fds/ --decode-fds, --absolute-timestamps, --relative-timestamps, и --syscall-times; реализованы различные улучшения статистики системных вызовов
5.56 февраля 2020 г. [38]
5.428 ноября 2019 г. [39]
5.325 сентября 2019 г. [40]
5.212 июля 2019 г. [41]
5.122 мая 2019 г. [42]
5.019 марта 2019 г. [43]
4.2626 декабря 2018 г. [44]
4.2530 октября 2018 г. [45]
4.2414 августа 2018 г. [46]
4.2314 июня 2018 г. [47]
4.225 апреля 2018 г. [48]
4.2113 февраля 2018 г. [49]
4.2013 ноября 2017 г. [50]
4.195 сентября 2017 г. [51]
4.185 июля 2017 г. [52]
4.1724 мая 2017 г. [53]
4.1614 февраля 2017 г. [54]
4.1514 декабря 2016 г. [55]
4.144 октября 2016 г. [56]
4.1326 июля 2016 г. [57]
4.1231 мая 2016 г. [58]
4.1121 декабря 2015 г. [59]
4.106 марта 2015 г. [60]
4.915 августа 2014 г. [61]
4.83 июня 2013 г. [62]
4.72 мая 2012 г. [63]Весь код, не относящийся к Linux, был удален.
4.615 марта 2011 г. [64]
4.5.2013 апреля 2010 г.Добавлена ​​поддержка новых системных вызовов inotify_init1, perf_event_open, preadv, pwritev, recvmmsg, rt_tgsigqueueinfoв Linux; -Cдобавлена ​​опция, объединяющая обычный и сводный вывод; добавлена ​​поддержка архитектуры Tile в Linux
4.5.1921 октября 2009 г.Поддержка перешла к Дмитрию Левину; strace теперь завершается с тем же кодом/сигналом выхода, что и трассируемая программа (если она была запущена strace); добавлена ​​поддержка новых системных вызовов accept4, dup3, epoll_create1, eventfd2, inotify_init1, pipe2, signalfd4в Linux; добавлена ​​поддержка архитектур Blackfin, AVR32 и CRIS в Linux
4.5.1828 августа 2008 г.Добавлена ​​поддержка subpage_protсистемных вызовов POWER в Linux.
4.5.1721 июля 2008 г.-Fфлаг устарел, так как -fследы vforkв Linux уже давно
4.5.163 августа 2007 г.
4.5.1516 января 2007 г.Добавлена ​​поддержка новых системных вызовов *at, inotify*, pselect6, ppollи unshareв Linux.
4.5.1416 января 2007 г.Номер системного вызова может быть указан в -eспецификации
4.5.133 августа 2005 г.Добавить descподдержку группы системных вызовов в-e trace=
4.5.128 июня 2005 г.
4.5.1122 марта 2005 г.
4.5.1013 марта 2005 г.
4.5.94 февраля 2004 г.
4.5.819 октября 2004 г.Декодирование mbind, [sg]et_mempolicy, waitid, fadvise64{,_64}и epoll_*системных вызовов, RTC_*ioctl в Linux
4.5.731 августа 2004 г.
4.5.612 июля 2004 г.Добавлена ​​поддержка 64-битной архитектуры SPARC в Linux.
4.5.527 июня 2004 г.
4.5.43 июня 2004 г.-pподключается ко всем потокам NPTL в Linux только при -fналичии
4.5.316 апреля 2004 г.Добавлена ​​поддержка mq_*системных вызовов в Linux; -pтеперь подключается ко всем потокам NPTL в Linux
4.5.21 марта 2004 г.
4.5.113 ноября 2003 г.
4.524 сентября 2003 г.Поддержка перешла к Роланду Макграту; добавлена ​​поддержка x86-64 в Linux с поддержкой отслеживания совместимых процессов; добавлена ​​поддержка архитектур SH и SH64 в Linux; -Eдобавлена ​​опция
4.419 августа 2001 г.
4.3.17 апреля 2001 г.
4.31 апреля 2001 г.Добавлена ​​поддержка архитектур HP PA/RISC и IA-64 в Linux; добавлена ​​поддержка 32-битных системных вызовов UID/GID в Linux; добавлена ​​поддержка FreeBSD на x86
4.221 января 2000 г.Добавлена ​​поддержка архитектуры IBM Z на Linux
4.126 ноября 1999 г.Добавлена ​​поддержка архитектуры MIPS в Linux; strace-graphдобавлен скрипт
4.0.125 июля 1999 г.
4.09 июля 1999 г.Исправлено 64-битное struct statдекодирование в Linux; обновления Irix 64; обновления Solaris
3.99.19 июня 1999 г.
3.9927 апреля 1999 г.Новый сопровождающий, Вихерт Аккерман; добавлена ​​поддержка архитектур IBM POWER, SPARC и ARM в Linux; добавлена ​​поддержка многих системных вызовов в Linux
3.11 июня 1996 г.Добавлена ​​поддержка архитектур Irix OS, m68k и DEC Alpha в Linux; добавлена ​​поддержка -o!синтаксиса опций; добавлена ​​поддержка классов системных вызовов ( file, process); добавлена ​​поддержка системных вызовов IPC в Sun OS
3.09 июля 1994 г. [65]Первоначальная кроссплатформенная версия Ричарда Слэдки. Включает поддержку -x, -q, -e( trace, abbrev, verbose, raw, signal, readи writeквалификаторов), -c, -iопций

Использование и особенности

Наиболее распространенное использование — запуск программы с помощью strace, которая выводит список системных вызовов, выполненных программой. Это полезно, если программа постоянно падает или ведет себя не так, как ожидалось; например, использование strace может показать, что программа пытается получить доступ к файлу, который не существует или не может быть прочитан.

Альтернативное применение — использовать -pфлаг для присоединения к запущенному процессу. Это полезно, если процесс перестал отвечать, и может показать, например, что процесс блокируется при попытке установить сетевое соединение.

Среди прочих возможностей strace позволяет:

  • Указание фильтра имен системных вызовов, которые следует отслеживать (с помощью -e trace=параметра): по имени, например, clone,fork,vfork ; с использованием одной из предопределенных групп, например %ipc или %file ; или (начиная с версии strace 4.17) с использованием синтаксиса регулярных выражений, например .-e trace=/clock_.*
  • Указание списка путей для трассировки ( -P /etc/ld.so.cacheнапример).
  • Указание списка файловых дескрипторов, ввод-вывод которых должен быть выгружен ( -e read=и -e write=параметры).
  • Подсчет времени выполнения системного вызова и количества ( параметры -T, -c, -C, и -w; -Uпараметр позволяет выводить дополнительную информацию, например минимальное и максимальное время выполнения системного вызова).
  • Печать относительных или абсолютных временных меток ( -tи -rопции).
  • Изменение выполняемых системных вызовов ( опция): изменение возвращаемого значения ( ; начиная с версии strace 4.16) и кода ошибки ( ; начиная с версии strace 4.15) указанных системных вызовов, внедрение сигналов ( ; начиная с версии strace 4.16), задержек ( и ; начиная с версии strace 4.22) и изменение данных, на которые указывают аргументы системных вызовов ( и ; начиная с версии strace 5.11) при их выполнении.-e inject=syscall specification:tampering specification:retval=:error=:signal=:delay_enter=:delay_exit=:poke_enter=:poke_exit=
  • Извлечение информации о дескрипторах файлов (включая сокеты, -yопция; -yyопция предоставляет некоторую дополнительную информацию, такую ​​как адреса конечных точек для сокетов, пути и основные/дополнительные номера устройств для файлов).
  • Печать трассировок стека, включая (начиная с версии strace 4.21) разборку символов ( -kопция).
  • Фильтрация по возвращаемому статусу системного вызова ( -e status=опция; начиная с версии strace 5.2 [примечание 3] ).
  • Выполнить преобразование идентификаторов потоков, процессов, групп процессов и сеансов, появляющихся в трассировке, в пространство имен PID strace ( --pidns-translationопция; начиная с strace 5.9).
  • Декодирование контекстной информации SELinux , связанной с процессами, файлами и дескрипторами ( --secontextопция; начиная с strace 5.12).

strace поддерживает декодирование аргументов некоторых классов команд ioctl , таких как BTRFS_* , V4L2_* , DM_* , NSFS_* , MEM* , EVIO* , KVM_* и некоторых других; он также поддерживает декодирование различных протоколов netlink .

Так как strace детализирует только системные вызовы, он не может быть использован для обнаружения такого количества проблем, как отладчик кода, такой как GNU Debugger (gdb). Однако он проще в использовании, чем отладчик кода, и является очень полезным инструментом для системных администраторов. Он также используется исследователями для генерации трассировок системных вызовов для последующего воспроизведения системных вызовов . [66] [67] [68]

Примеры

Ниже приведен пример типичного вывода команды strace:

пользователь@сервер:~$ strace  ls ... open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 fcntl64(3, F_GETFD) = 0x1 (флаги FD_CLOEXEC) getdents64(3, /* 18 записей */, 4096) = 496 getdents64(3, /* 0 записей */, 4096) = 0 close(3) = 0 fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2c000 запись(1, "autofs\nbackups\ncache\nflexlm\ngames"..., 86autofsA

Приведенный выше фрагмент — лишь малая часть вывода strace при запуске команды ' ls '. Он показывает, что текущий рабочий каталог открывается, проверяется и извлекается его содержимое. Полученный список имен файлов записывается в стандартный вывод.

Похожие инструменты

Различные операционные системы имеют другие похожие или связанные инструменты инструментирования , предлагающие похожие или более продвинутые функции; некоторые из инструментов (хотя и с одинаковым или похожим названием) могут использовать совершенно разные рабочие механизмы, что приводит к разным наборам функций или результатам. Такие инструменты включают в себя следующее:

Смотрите также

Примечания

  1. ^ Однако декодирование сообщений об ошибках системы выполняется в соответствии с текущей локалью, начиная со strace 4.22. [3]
  2. ^ Тестовый набор распространяется по лицензии GPL v2.0+ .
  3. ^ Его сокращение для отображения только успешных вызовов, -zoption, изначально было добавлено в strace 4.5, но никогда не было документировано, поскольку работало неправильно.

Ссылки

  1. ^ "Выпуск 6.11". 15 сентября 2024 г. Получено 26 сентября 2024 г.
  2. ^ "Проект с открытым исходным кодом strace на Open Hub". Openhub.net . Получено 23.11.2021 .
  3. ^ Дмитрий В. Левин (01.04.2018). "[PATCH] Добавить поддержку i18n" (список рассылки) . Получено 02.09.2021 .
  4. ^ Дмитрий В. Левин (15.12.2018). "I: изменение лицензии strace на лицензию copyleft" (список рассылки) . Получено 02.09.2021 .
  5. Пол Краненбург (2 марта 1992 г.). "Strace - альтернативный трассировщик системных вызовов". Группа новостей : comp.sources.sun.
  6. Бранко Ланкестер (5 ноября 1992 г.). «первый выпуск strace для Linux».
  7. Бранко Ланкестер (18 июня 1993 г.). «второй выпуск strace для Linux».
  8. ^ "След". manned.org. 21 июня 1994 года.
  9. ^ "SUNET's Index of /pub/usenet/ftp.uu.net/comp.sources.misc/volume43/strace". Архивировано из оригинала 11 сентября 2007 г. Получено 14 января 2015 г.
  10. ^ Денис Власенко (7 февраля 2012 г.). «Как насчет удаления не-Linux кода?».
  11. Дмитрий В. Левин (16 марта 2011 г.). «strace 4.6 выпущен».
  12. Дмитрий В. Левин (2 мая 2012 г.). «strace 4.7 выпущен».
  13. Дмитрий В. Левин (20 апреля 2012 г.). «Заслуживающие внимания изменения в версии 4.7».
  14. Дмитрий В. Левин (4 октября 2016 г.). «strace 4.14 выпущен».
  15. Дмитрий В. Левин (19 марта 2019 г.). «strace 5.0 выпущен».
  16. Дмитрий В. Левин (1 мая 2012 г.). «Заслуживающие внимания изменения в версии 4.7». GitHub .
  17. Дмитрий В. Левин (15 августа 2014 г.). «strace 4.9 выпущен».
  18. ^ Дмитрий В. Левин (15 августа 2014 г.). «Заслуживающие внимания изменения в версии 4.9». GitHub .
  19. Дмитрий В. Левин (14 декабря 2016 г.). «выпущена версия strace 4.15».
  20. ^ Дмитрий В. Левин (14 декабря 2016 г.). «Заслуживающие внимания изменения в версии 4.15». GitHub .
  21. ^ Дмитрий В. Левин (26.02.2023). "strace 6.2 выпущен".
  22. ^ Дмитрий В. Левин (12.12.2022). "strace 6.1 выпущен".
  23. ^ Дмитрий В. Левин (29.10.2022). "strace 6.0 выпущен".
  24. ^ Дмитрий В. Левин (12.08.2022). "strace 5.19 выпущен".
  25. ^ Дмитрий В. Левин (18.06.2022). "strace 5.18 выпущен".
  26. ^ Дмитрий В. Левин (27.03.2022). "strace 5.17 выпущен".
  27. ^ Дмитрий В. Левин (10.01.2022). "strace 5.16 выпущен".
  28. ^ Дмитрий В. Левин (01.12.2021). "strace 5.15 выпущен".
  29. ^ Дмитрий В. Левин (2021-09-02). "strace 5.14 выпущен".
  30. ^ Дмитрий В. Левин (18.07.2021). "strace 5.13 выпущен".
  31. ^ Дмитрий В. Левин (2021-04-26). "strace 5.12 выпущен".
  32. ^ Дмитрий В. Левин (17.02.2021). "strace 5.11 выпущен".
  33. ^ Дмитрий В. Левин (14.12.2020). "strace 5.10 выпущен".
  34. ^ Дмитрий В. Левин (24.09.2020). "strace 5.9 выпущен".
  35. ^ Дмитрий В. Левин (06.08.2020). "strace 5.8 выпущен".
  36. ^ Дмитрий В. Левин (01.06.2020). "strace 5.7 выпущен".
  37. ^ Дмитрий В. Левин (07.04.2020). "strace 5.6 выпущен".
  38. ^ Дмитрий В. Левин (2020-02-06). "strace 5.5 выпущен".
  39. ^ Дмитрий В. Левин (28.11.2019). "strace 5.4 выпущен".
  40. ^ Дмитрий В. Левин (25.09.2019). "strace 5.3 выпущен".
  41. ^ Дмитрий В. Левин (12.07.2019). "strace 5.2 выпущен".
  42. ^ Дмитрий В. Левин (22.05.2019). "strace 5.1 выпущен".
  43. ^ Дмитрий В. Левин (19.03.2019). "strace 5.0 выпущен".
  44. ^ Дмитрий В. Левин (2018-12-26). "strace 4.26 выпущен".
  45. ^ Дмитрий В. Левин (30.10.2018). "strace 4.25 выпущен".
  46. ^ Дмитрий В. Левин (14.08.2018). "strace 4.24 выпущен".
  47. ^ Дмитрий В. Левин (14.06.2018). "strace 4.23 выпущен".
  48. ^ Дмитрий В. Левин (2018-04-05). "strace 4.22 выпущен".
  49. ^ Дмитрий В. Левин (13.02.2018). "strace 4.21 выпущен".
  50. ^ Дмитрий В. Левин (13.11.2017). "выпущен strace 4.20".
  51. ^ Дмитрий В. Левин (05.09.2017). "strace 4.19 выпущен".
  52. ^ Дмитрий В. Левин (05.07.2017). "strace 4.18 выпущен".
  53. ^ Дмитрий В. Левин (24.05.2017). "strace 4.17 выпущен".
  54. ^ Дмитрий В. Левин (14.02.2017). "strace 4.16 выпущен".
  55. ^ Дмитрий В. Левин (14.12.2016). "strace 4.15 выпущен".
  56. ^ Дмитрий В. Левин (2016-10-04). "strace 4.14 выпущен".
  57. Дмитрий В. Левин (2016-07-26). "strace 4.13 выпущен".
  58. Дмитрий В. Левин (31.05.2016). "strace 4.12 выпущен".
  59. ^ Дмитрий В. Левин (21.12.2015). "strace 4.11 выпущен".
  60. Дмитрий В. Левин (06.03.2015). "strace 4.10 выпущен".
  61. ^ Дмитрий В. Левин (15.08.2014). "strace 4.9 выпущен".
  62. Дмитрий В. Левин (03.06.2013). "strace 4.8 выпущен".
  63. Дмитрий В. Левин (2012-05-02). "strace 4.7 выпущен".
  64. Дмитрий В. Левин (15.03.2011). "strace 4.6 выпущен".
  65. Рик Слэдки (09.07.1994). "v43i075: strace - трассировщик системных вызовов для sunos, linux, svr4, solaris2, часть 01/10".
  66. ^ Хорки, Джири (2013). "Профилировщик ввода-вывода ioapps и реплейсер трассировок ввода-вывода" . Получено 16 сентября 2013 г.
  67. ^ Waterland, Amos (2007). "Системный вызов sreplay replayer" . Получено 2013-09-16 .
  68. ^ Бертон, Ариэль (1998). "Характеристика рабочей нагрузки с использованием облегченной трассировки системных вызовов и повторного выполнения" (PDF) . Получено 16 сентября 2013 г.
  69. ^ "XTrace - трассировка соединений протокола X". xtrace.alioth.debian.org . Архивировано из оригинала 2014-08-05 . Получено 2014-08-12 .
  70. ^ "dtrace(1) Страница руководства Mac OS X". Developer.apple.com . Получено 2014-07-23 .
  71. ^ "IntellectualHeaven - Strace For Windows". intellectualheaven.com . Архивировано из оригинала 5 марта 2016 года . Получено 29 января 2015 года .
  • страница проекта strace
  • Страница руководства
  • Статья OS Reviews на strace
  • «Отслеживание системных вызовов с помощью strace», доклад с обзором функций и использования strace, представленный Майклом Керриском на конференции NDC TechTown 2018
  • «Современный strace» (источник), доклад с обзором возможностей strace, сделанный Дмитрием Левиным на DevConf.cz 2019
Взято с "https://en.wikipedia.org/w/index.php?title=Strace&oldid=1251523636"