4.4. Действия при трассировке программы

4.4. Действия при трассировке программы

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

Первая, strace, выводит запись о каждом системном вызове программы. Вторая, ltrace, выводит запись о каждой функции библиотеки, которую вызывает программа (и по выбору может также трассировать системные вызовы). Эти инструменты могут оказаться полезными при определении неполадок в случаях явного сбоя.

Например, предположим, что имеется системный демон, функционирующий уже некоторое время, который начал выдавать ошибки сегментации. Скорее всего, это вызвано изменением в некоторых файлах данных, но неизвестно каких именно. Первым шагом должен быть запуск системного демона под управлением strace. Нужно просмотреть несколько последних файлов, которые демон открывал перед тем, как произошла ошибка сегментации, и найти в этих файлах возможные причины. Либо предположим, что другой демон внезапно начал занимать много процессорного времени; в этом случае можно запустить его сначала под strace, а затем и под ltrace, если strace четко не покажет, что конкретно делал демон. В результате можно определить входные параметры или условия, которые привели к потреблению такого количества процессорного времени.

Подобно gdb, strace и ltrace можно использовать для выполнения программы от начала до конца или подключаться к уже запущенным программам. По умолчанию strace и ltrace производят вывод на стандартное устройство вывода. Обе программы требуют указания сначала собственных опций, за которыми должен следовать исполняемый файл для запуска, и, если исполняемый файл указан, то все опции, которые передаются ему, должны записываться следом.

Обе утилиты поддерживают похожий набор опций.

или --demangle Только для ltrace. Декодирует (или расшифровывает) имена библиотечных символов в читабельные имена. В результате убираются начальные символы подчеркивания (многие функции glibc имеют внутренние имена с начальными символами подчеркивания) и функции библиотеки С++ становятся более читабельными (С++ шифрует информацию о типе в символьные имена).
Только для strace. Указывает подмножество вызовов, которые нужно вывести. Существует множество возможных спецификаций, описанных на man-странице strace; самой распространенной спецификацией является -е trace=file, которая трассирует только системные вызовы, связанные с файловым вводом-выводом и обработкой файлов.
-f Пытается «следовать вызову fork()», по возможности трассируя дочерние процессы. Обратите внимание, что дочерний процесс может некоторое время работать без трассировки до тех пор, пока strace или ltrace сможет подключиться к нему и трассировать его действия.
имя_файла Вместо вывода на стандартное устройство вывода выводит в файл имя файла.
pid Вместо запуска нового экземпляра программы подключается к процессу с идентификатором pid.
-S Только для ltrace. Отслеживает системные и библиотечные вызовы.
-v Только для strace. Не сокращает большие структуры в системных вызовах вроде семейства вызовов stat(), termios и так далее.

На man-страницах утилит можно найти описание этих и других опций, здесь не упомянутых.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Выражение действия

Из книги Самоучитель UML автора Леоненков Александр

Выражение действия Выражение действия (action expression) выполняется в том и только в том случае, когда переход срабатывает. Представляет собой атомарную операцию (достаточно простое вычисление), выполняемую сразу после срабатывания соответствующего перехода до начала каких


6.5. Действия и переходы

Из книги Iptables Tutorial 1.1.19 автора Andreasson Oskar

6.5. Действия и переходы Действия и переходы сообщают правилу, что необходимо выполнить, если пакет соотвествует заданному критерию. Чаще всего употребляются действия ACCEPT и DROP. Однако, давайте кратко рассмотрим понятие переходов.Описание переходов в правилах выглядит


2.2. Отладочные действия

Из книги Отладка систем реального времени [Обзор] автора Костюхин К А

2.2. Отладочные действия Существует набор базовых действий, позволяющих пользователю осуществлять контроль за выполнением отлаживаемой задачи. Эти действия можно классифицировать следующим образом:• предварительные действия отладчика;• прерывание выполнения


Действия с изображениями

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

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


Действия над окнами

Из книги Windows Vista. Мультимедийный курс автора Мединов Олег

Действия над окнами Рассмотрим команды окна. Наведите указатель мыши на область заголовка окна и щелкните правой кнопкой. Появится контекстное меню (рис. 3.4), содержащее пункты Восстановить, Переместить, Размер, Свернуть, Развернуть и Закрыть. Если выбрать пункт


Точка действия

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри


28.2.2. Действия РАМ

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.


5 Действия

Из книги Сначала мобильные! автора Вроблевски Люк

5 Действия ДЛЯ УСТРОЙСТВ С МАЛЕНЬКИМ ДИСПЛЕЕМ, помещающихся на ладони, сенсорный экран — это естественный выбор. В сущности, благодаря ему мобильное устройство (а не только клавиатура или трекбол) превращается в интерактивную поверхность. Именно поэтому телефонов, экран


5.3.4. Действия над слайдами

Из книги Самоучитель работы на Macintosh автора Скрылина Софья

5.3.4. Действия над слайдами Над слайдами возможны следующие действия: создание, удаление, пропуск, изменение порядка слайдов, переход от предыдущего к следующему.Создание слайдаДобавление слайда происходит с помощью кнопки New (Новый), расположенной на панели


19.6.4. Действия над цепочками

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

19.6.4. Действия над цепочками Рекомендуется создавать отдельные цепочки для различных объектов фильтрации. Это позволяет логически группировать правила. Для создания новой цепочки используется опция -N, за которой следует имя новой цепочки (напоминаю, что имена


Время действия

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

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


10.2. Действия сигналов

Из книги Linux программирование в примерах автора Роббинс Арнольд

10.2. Действия сигналов Каждый сигнал (вскоре мы представим полный список) имеет связанное с ним действие по умолчанию. POSIX обозначает это как диспозицию (disposition) сигнала. Это то действие, которое ядро осуществляет для процесса, когда поступает определенный сигнал. Действие


Целевые действия

Из книги Монетизация сайта. Секреты больших денег в Интернете автора Меркулов Андрей

Целевые действия Целевые действия играют ключевую роль в конверсии сайта. При работе с ними ваша задача – определить, какое действие сделать основным на сайте. Это может быть «Звонок по телефону» или «Оформление покупки в интернет-магазине».Если вы принимаете звонки с


Завершающие действия

Из книги IT-безопасность: стоит ли рисковать корпорацией? автора Маккарти Линда

Завершающие действия После взлома вы должны провести оценку случившегося. Следовал ли ваш персонал намеченным целям и приоритетам? Какие уроки вы извлекли? Что бы вы хотели в дальнейшем сделать по-другому? Возвращены ли ваши системы в безопасное состояние и не осталось