The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Новая версия strace 4.17

25.05.2017 14:52

Доступен выпуск strace 4.17, утилиты для диагностики и отладки программ для ОС, использующих ядро Linux. Она позволяет отслеживать и (начиная с версии 4.15) вмешиваться в процесс взаимодействия программы и ядра, включая происходящие системные вызовы, возникающие сигналы и изменения состояния процесса. Для своей работы strace использует механизм ptrace. Начиная с версии 4.13 формирование выпусков strace синхронизировано с выходом новых версий ядра Linux.

Основные изменения в strace 4.17:

  • Оптимизирована фильтрация системных вызовов за счёт уменьшения количества вызовов ptrace() для системных вызовов, отображение которых отключено.
  • Добавлена поддержка декодирования системного вызова statx(2), появившегося в Linux 4.11.
  • Добавлена поддержка декодирования команд ioctl(2), связанных с операциями над пространствами имён.
  • Для ioctl подсистемы Video4Linux добавлена поддержка декодирования не декодировавшихся ранее типов V4L2_BUF_TYPE_*, а также команд VIDIOC_S_TUNER и VIDIOC_G_TUNER.
  • Реализована поддержка декодирования сообщений NLMSG_ERROR протокола netlink.
  • Улучшено декодирование системного вызова sched_setattr(2), команды BPF_PROG_ATTACH системного вызова bpf(2), некорректных аргументов команд подсистемы device mapper системного вызова ioctl(2).
  • Классы системных вызовов, указываемые в аргументе -e trace= (такие как process, file, network, ipc, desc, memory), теперь должны начинаться со знака %: -e trace=%memory. Старый синтаксис без указания знака процента (-e trace=memory) всё так же поддерживается, но теперь считается устаревшим.
  • Добавлены новые классы системных вызовов для указания их фильтрации: %stat (варианты системного вызова stat(2) на разных архитектурах), %lstat (варианты системного вызова lstat(2)), %fstat (варианты системных вызовов fstat(2) и fstatat(2)), %%stat (все вызовы, возвращающие статусную информацию о файле, включая statx(2)), %statfs (варианты системного вызова statfs(2)), %fstatfs (варианты системного вызова fstatfs(2)), %%statfs (все вызовы, возвращающие статусную информацию о файловой системе, включая ustat(2)).
  • Добавлена возможность указания регулярного выражения для задания множества фильтруемых системных вызовов, например, -e trace=/sched_.*.
  • Добавлена возможность игнорирования ошибки, возникающей в случае, если множество системных вызовов, соответствующее указанному фильтру, пустое, например -e trace=?statx на архитектурах, которые не поддерживают системный вызов statx(2).
  • Добавлена поддержка декодирования маски сигналов в системном вызове rt_sigreturn(2) для архитектур alpha, arc, arm, avr32, bfin, cris, hppa, m68k, metag, microblaze, mips, nios2, or1k, powerpc, powerpc64, riscv, sh, sh64, sparc, sparc64, tile, x86 и xtensa.
  • Исправлено декодирование аргумента флагов в системных вызовах preadv2(2) и pwritev2(2) на ABI x32.
  • Исправлено декодирование старого варианта системного вызова sigsuspend(2) на архитектурах alpha, cris, mips, powerpc, powerpc64, sh, sh64, sparc и sparc64.
  • Исправлено декодирование системных вызовов sgetmask(2) и ssetmask(2) на 64-битных архитектурах.
  • Обойдена ошибка компилятора GCC, приводящая к генерации некорректного кода на ядрах для архитектуры aarch64, вследствие которой третий аргумент системного вызова sched_getattr(2) не вполне 32-битный.

Также, среди изменений, вошедших в предыдущий релиз 4.16, можно отметить следующие:

  • В механизм подмены системного вызова добавлена поддержка указания возвращаемого значения (-e inject=SET:retval=) и возбуждения сигнала (-e inject=SET:signal=)
  • Добавлена поддержка декодирования системного вызова ustat(2).
  • Реализована поддержка декодирования команд BPF_OBJ_PIN, BPF_OBJ_GET, BPF_PROG_ATTACH и BPF_PROG_DETACH системного вызова bpf(2).
  • Существенно доработана поддержка декодирования команд SCSI системного вызова ioctl(2): добавлена поддержка декодирования всех не доекодировавшихся ранее команд SG_*, а также структур sg_io_hdr и sg_io_v4.
  • Улучшено декодирование системных вызовов get_robust_list(2), getrandom(2), io_submit(2), set_robust_list(2).
  • Исправлено декодирование структур ifconf, ifreq, and loop_info для ABI, отличающихся от ABI ядра.
  • Исправлено декодирование системных вызовов kexec_file_load(2), mprotect(2), pkey_mprotect(2), prctl(2), preadv(2)/preadv2(2), pwritev(2)/pwritev2(2) на ABI x32.


  1. Главная ссылка к новости (https://sourceforge.net/p/stra...)
  2. OpenNews: Выпуск strace 4.15 с функцией подмены системных вызовов
  3. OpenNews: Выпуск strace 4.11
  4. OpenNews: Выпуск strace 4.10
Автор новости: eSyr
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46599-strace
Ключевые слова: strace, debug
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (13) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.6, Michael Shigorin (ok), 00:49, 26/05/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Возможно, стоит добавить, что strace в существенной мере разрабатывается в... альте. :) (ldv@, lineprinter@, glebfm@, вроде кто-то ещё руку прикладывал)
     
     
  • 2.7, Аноним (-), 01:28, 26/05/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если так, то личное спасибо тем кто поддерживает strace. Это нужная штука.
     
  • 2.8, кверти (ok), 02:32, 26/05/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Миша, завидую твоему упорству - зная, что сейчас сотня-другая идиотов прибежит обсирать альт, ты все равно постишь про него)
     
     
  • 3.9, vantoo (ok), 02:45, 26/05/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Никто другой не приложил столько усилий по дискредитации Альта.
     
     
  • 4.12, кверти (ok), 14:33, 26/05/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вот аж застыл в ожидании примеров. Будут или сольешься?
     
  • 3.10, Michael Shigorin (ok), 10:50, 26/05/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Миша, завидую твоему упорству - зная, что сейчас сотня-другая идиотов прибежит
    > обсирать альт, ты все равно постишь про него)

    Тут как: клинические такими и останутся, их "критику" слушать без пользы вообще; а наслушавшиеся баек или целенаправленного вранья, глядишь, и задумаются.  Людям же разумным может быть попросту интересно -- в т.ч. узнать, что по strace можно организовать семинар здесь же в Москве (там _очень_ много реализовано за последние годы помимо базовых -f и -o, которых многим вроде как хватает) или же обсудить вопросы за чашкой чая.

    Мне вот на прошедшей на этой неделе конференции OS Day было весьма интересно узнать про ГосЛинукс и "Циркон" не только то, что это очередные клоны центоси, а и то, _для чего_ их, собственно, делали и что весьма интересного сделано в оригинальной части (заодно же -- что тот же "Циркон" в десятой версии решал сходные задачи на базе Solaris 10).  Это не говоря про ещё две оригинальные операционки "с нуля" -- "конторскую" QP ОС имени Криптософт и "домашнюю" LDuS одного дядьки с мехмата МГУ, ну и разработчики Embox опять приехали.

    PS: strace регулярно участвует в GSoC, ментором там вроде как опять же Дима Левин -- и что-то мне подсказывает, что он бы с радостью поработал с толковыми студентами, а не только индусами и китайцами, из которых многие набегают чисто на денюх заработать (хотя бывают, разумеется, и интересные задумки/патчи).

     
  • 2.16, uchiya (ok), 09:13, 27/05/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Существенной на сколько ? Как и в ядре 1 патч из миллиарда?
     
     
  • 3.18, _ (??), 16:43, 30/05/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да хоть и так - это всё равно в миллиард раз больше пользы чем принёс ты. :-)
     

  • 1.11, iv (?), 13:09, 26/05/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >  не вполне 32-битный

    шикарная формулировка.

     
  • 1.13, Аноним (-), 14:35, 26/05/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну все Начинаю Любить Альт, Мне все равно какой дистрибутив используют разработчики ПО, это личное дело каждого. Детский сад какой то. Разработчикам strace спасибо за труд, очень нужное ПО.
     
     
  • 2.14, Аноним (-), 14:44, 26/05/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Забыл добавить, специально для Шигорина, чем чаще реклама тем больше отвращение к продукту который рекламируют. Хотите рекламу делайте ее грамотно, пишите статьи например, в чем альт лучше. А вот такого рода реклама мол starce разрабатывают используя Альт, это как спам
     
     
  • 3.17, Michael Shigorin (ok), 14:35, 28/05/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Забыл добавить, специально для Шигорина, чем чаще реклама

    Не собираюсь специально добавлять специально для Вас, что реклама -- это платная услуга по избирательному информированию, а я написал то, что и самому бывает интересно узнать о других проектах, для тех, кому тоже такое интересно.

    Статьи "чем лучше", как по мне, глупость.  Полезней статьи про _неочевидные_ тонкие места, могущие вылезти боком -- как вот про необходимость настройки авторотации томов в Bacula _заранее_, а не когда уже слишком поздно.

     
  • 3.19, _ (??), 16:47, 30/05/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В разработке strace принимают участие люди с Альта. ТЧК. Медецинский факт.
    Если сий вопиющий факт не даёт тебе спокойно жить на этой жестокой планете - сделай вд^W - перелети жить на Шелезяку :-) Ну или хотя бы купи [К]aнaльный охладитель :))))
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру