The OpenNET Project / Index page

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

25.05.2017 14:52  Новая версия strace 4.17

Доступен выпуск 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
Тип: Программы
Ключевые слова: strace, debug
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.6, Michael Shigorin, 00:49, 26/05/2017 [ответить] [смотреть все]
  • +2 +/
    Возможно, стоит добавить, что strace в существенной мере разрабатывается в... альте. :) (ldv@, lineprinter@, glebfm@, вроде кто-то ещё руку прикладывал)
     
     
  • 2.7, Аноним, 01:28, 26/05/2017 [^] [ответить] [смотреть все]
  • +1 +/
    Если так, то личное спасибо тем кто поддерживает strace. Это нужная штука.
     
  • 2.8, кверти, 02:32, 26/05/2017 [^] [ответить] [смотреть все]
  • +2 +/
    Миша, завидую твоему упорству - зная, что сейчас сотня-другая идиотов прибежит обсирать альт, ты все равно постишь про него)
     
     
  • 3.9, vantoo, 02:45, 26/05/2017 [^] [ответить] [смотреть все]
  • +4 +/
    Никто другой не приложил столько усилий по дискредитации Альта.
     
     
  • 4.12, кверти, 14:33, 26/05/2017 [^] [ответить] [смотреть все]
  • –3 +/
    Вот аж застыл в ожидании примеров. Будут или сольешься?
     
  • 3.10, Michael Shigorin, 10:50, 26/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Тут как клинические такими и останутся, их критику слушать без пользы вообще ... весь текст скрыт [показать]
     
  • 2.16, uchiya, 09:13, 27/05/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Существенной на сколько ? Как и в ядре 1 патч из миллиарда?
     
     
  • 3.18, _, 16:43, 30/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Да хоть и так - это всё равно в миллиард раз больше пользы чем принёс ты. :-)
     
  • 1.11, iv, 13:09, 26/05/2017 [ответить] [смотреть все]  
  • +1 +/
    >  не вполне 32-битный

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

     
  • 1.13, Аноним, 14:35, 26/05/2017 [ответить] [смотреть все]  
  • –1 +/
    Ну все Начинаю Любить Альт, Мне все равно какой дистрибутив используют разработч... весь текст скрыт [показать]
     
     
  • 2.14, Аноним, 14:44, 26/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Забыл добавить, специально для Шигорина, чем чаще реклама тем больше отвращение ... весь текст скрыт [показать]
     
     
  • 3.17, Michael Shigorin, 14:35, 28/05/2017 [^] [ответить] [смотреть все]  
  • +/
    > Забыл добавить, специально для Шигорина, чем чаще реклама

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

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

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

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor