The OpenNET Project / Index page

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

Для Linux представлен универсальный инструмент для трассировки программ

17.11.2010 15:51

В ответ на сожаление Линуса Торвальдса об отсутствии для Linux удобной и понятной обычным пользователям утилиты для задействования современных возможностей Linux-ядра по трассировке программ, Томас Глейкснер (Thomas Gleixner) представил на суд разработчиков утилиту "trace". В отличие от усложненных профессиональных инструментов, подобных утилите "perf", "trace" отличается простотой использования и пригодностью для решения повседневных задач. Утилита пока не оформлена в отдельный репозиторий и требует загрузки Git-репозитория с деревом ядра.

По заявлению разработчика, несмотря на то, что возможности ядра по трассировке программ за последние годы существенно возросли, так и не удалось создать инструмент, сравнимый по своему удобству с такими ветеранами, как strace, за исключением появления таких мощных специализированных инструментов, как PowerTop и LatencyTop. Утилита trace направлена на то, чтобы переломить сложившуюся ситуацию и совместить легкость использования и мощь инфраструктуры профилирования "perf".

Процесс работы с trace сводится к однократной трассировке приложения, сохранению результатов в файл и последующему анализу результатов: от генерации общих сводных отчетов до все более и более глубокого погружения в детали, с возможностью задания фильтров для выделения интересующих событий (системные вызовы, связанные с работой процесса события (fork/clone/exit), mmap-события, работа планировщика задач и т.п.). Особенностью утилиты является поддержка одновременной трассировки одной и той же программы разными пользователями.

Из планов на будущее отмечается поддержка возможностей трассировки, привязанных к отслеживанию сетевой и дисковой активности приложения, поддержка команды 'trace diff' для наглядного сравнения нескольких трассировок, реализация возможности инициирования трассировки на лету по PID-идентификатору уже запущенного процесса.

Наиболее типичные стадии работы с trace:

  • "trace record имя_программы" - создание файла trace.data с результатами трассировки программ и всех порожденных потомков;
  • "trace summary" - вывод краткого суммарного обзора результатов трассировки;
  • "trace report" - формирования детального отчета;
  • "trace report process|io|fs" - детализация отчета в категории "управление процессом", ввод/вывод или файловые операций;
  • "trace report -d 0.5" - вывод информации о событиях, выполнение которых заняло более 0.5 миллисекунд;
  • "trace check" - проверка, какие из возможностей ядра по трассировке программ доступны в данный момент.

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

  1. Главная ссылка к новости (http://lkml.org/lkml/2010/11/1...)
  2. Использование LTTng для прозрачной трассировки приложений в Ubuntu Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/28688-linux
Ключевые слова: linux, kernel, trace, debug
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (19) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, pavlinux (ok), 17:03, 17/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вай, пошёл тестить!!
     
  • 1.5, Frank (ok), 17:50, 17/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Sense checking...
    Warning: "понятной обычным пользователям", "решения повседневных задач" и "возможности ядра по трассировке программ": не совместимые аргументы.
    100% Done.
    0 errors, 1 warning found
     
     
  • 2.9, Crazy Alex (??), 19:36, 17/11/2010 [^] [^^] [^^^] [ответить]  
  • +7 +/
    "Обычный пользователь" != "обычная обезьяна". Человеку, далёкому от компьюеров и использующему компьютер как плеер/телевизор оно и не нужно. А вот нормальному power user, который в состоянии написать скрипт, но не является профессиональным програмистом подобный инструмент как раз пригодится. Хотя бы для того, чтобы выяснить, что творит тот же файрфокс когда тормозит в очередной раз...
     
     
  • 3.10, User294 (ok), 20:59, 17/11/2010 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну, знаете, когда вменяемого человека будет оперировать скажем хирург - человек сам конечно хирургом высшей квалификации не станет, но представление о предстоящей операции, рисках и последствиях - все-таки заимеет, если, конечно, не совсем кретин. Почему бы тогда хирургу не заиметь некоторые представления о проблемах его компа, если они ему жить мешают? Тем более что может так оказаться что его комп один во всем мире которому не повезло и совокупность факторов каждый из которых лезет в 1 из миллиона случаев совпала. Поэтому хорошо когда пользователя не считают за идиота принципиально не способного к обучению и даже подтиранию своего зада. Бывают конечно и такие "пользователи", но их правильнее было бы называть специально обученными обезьянами. Больше соответствует реальности. Ессно как вы не обязательно станете гуру анатомии, так и хирург не станет матерым ядерщиком скорее всего. Однако ж даже среди совершенно не компьютерных людей есть достаточно тех кто не является идиотом и вполне может нагуглить пару команд, разобраться в своей проблеме и даже заколотить баг, например.
     
     
  • 4.11, Аноним (-), 21:15, 17/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >но представление о предстоящей операции, рисках и последствиях - все-таки заимеет, если, конечно, не совсем кретин.

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

     
     
  • 5.12, pavlinux (ok), 23:57, 17/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда заболеет - тогда заимеет.

    У нас препод был по Физикие, ну и как у всех преподов, у него была любимая поговорка,
    "- Какая самая главная наука?"

    ... user294-й ответишь? Хотя её ты точно не знаешь. :)

     
     
  • 6.18, filosofem (ok), 10:10, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Что-то вроде Валеологии и ОБЖД?
    Или с другой стороны методололгия и гносеология? Интересно что преподу физики ближе.

    ЗЫ Фак, я же не Юзер.

     
     
  • 7.19, pavlinux (ok), 15:52, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Самая главная наука - забывать не нужное :)
     
     
  • 8.24, User294 (ok), 18:29, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А чего, правильно ведь Не вся информация нужна продолжительное время ... текст свёрнут, показать
     
     
  • 9.25, filosofem (ok), 18:39, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, это когда денег в долг взял, или позвонить пообещал, или жениться Такую не... текст свёрнут, показать
     
  • 6.20, Зилибоба (ok), 15:53, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Математика? НЕ?

    Фак, я же user294-й 8-р

     
     
  • 7.21, pavlinux (ok), 16:07, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Математика? НЕ?
    > Фак, я же user294-й 8-р

    http://www.opennet.me/openforum/vsluhforumID3/72580.html#19

     
  • 5.23, User294 (ok), 18:27, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну так я и не предлагаю изучать всем такие инструменты по поводу и без. Однако если есть инструмент и он не слишком сложен в освоении так что любой не сильно тупой индивид сможет им пользоваться без пыхтения в манах неделями - по-моеу это хорошо.
     
  • 2.16, Marbleless (?), 04:14, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Warning: "понятной обычным пользователям", "решения повседневных задач" и "возможности ядра по трассировке программ": не совместимые аргументы.

    Почему же? Если сделают по уму, будет вообще прекрасно.
    Нередко у пользователей возникают проблемы, которые разработчики воспроизвести не могут. Теперь, если этой утилитой будет удобно пользоваться, разработчики смогут проинструктировать таких пользователей, как им собрать нужную информацию о баге.

     

  • 1.13, Zenitur (?), 03:22, 18/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Можно ли в Linux сниффить USB? А то разработчики одного драйвера для принтера Canon, кодовое название которого foo2capt, делают это в Windows... А ведь проприетарный (хоть и глючный) драйвер и в Linux есть.
     
     
  • 2.14, ананим (?), 04:09, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    есть. причём куча. к примеру usbmon - monitor USB traffic
    SYNOPSIS
           usbmon [ -i usb_bus_num ] [ -f0 | -fu | -fh ] [ -a0 | -a1 ]
    DESCRIPTION
           usbmon allows to capture USB traffic for analysis in the manner similar to tcpdump(8)
    или
    dev-util/usb-robot
         Available versions:  0.2.0
         Homepage:            http://usb-robot.sourceforge.net/
         Description:         USB Reverse engineering tools
    или к примеру вот такая фича
    net-misc/usbip
         Available versions:  (~)0.1.7 {debug}
         Homepage:            http://usbip.sourceforge.net/
         Description:         Userspace utilities for a general USB device sharing system over IP networks
     
  • 2.15, Аноним (-), 04:14, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    http://wiki.wireshark.org/CaptureSetup/USB
     
  • 2.22, sema (?), 17:29, 18/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Может быть, они это делают для того, чтобы реинжинирить протокол, по которому работает действующий драйвер под Windows?
     

  • 1.17, delirium (ok), 09:41, 18/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ээ, есть же http://lttng.org/
     

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



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

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