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-страницах утилит можно найти описание этих и других опций, здесь не упомянутых.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
10.2. Действия сигналов
10.2. Действия сигналов Каждый сигнал (вскоре мы представим полный список) имеет связанное с ним действие по умолчанию. POSIX обозначает это как диспозицию (disposition) сигнала. Это то действие, которое ядро осуществляет для процесса, когда поступает определенный сигнал. Действие
2.2. Отладочные действия
2.2. Отладочные действия Существует набор базовых действий, позволяющих пользователю осуществлять контроль за выполнением отлаживаемой задачи. Эти действия можно классифицировать следующим образом:• предварительные действия отладчика;• прерывание выполнения
Выражение действия
Выражение действия Выражение действия (action expression) выполняется в том и только в том случае, когда переход срабатывает. Представляет собой атомарную операцию (достаточно простое вычисление), выполняемую сразу после срабатывания соответствующего перехода до начала каких
Действия над окнами
Действия над окнами Рассмотрим команды окна. Наведите указатель мыши на область заголовка окна и щелкните правой кнопкой. Появится контекстное меню (рис. 3.4), содержащее пункты Восстановить, Переместить, Размер, Свернуть, Развернуть и Закрыть. Если выбрать пункт
19.6.4. Действия над цепочками
19.6.4. Действия над цепочками Рекомендуется создавать отдельные цепочки для различных объектов фильтрации. Это позволяет логически группировать правила. Для создания новой цепочки используется опция -N, за которой следует имя новой цепочки (напоминаю, что имена
6.5. Действия и переходы
6.5. Действия и переходы Действия и переходы сообщают правилу, что необходимо выполнить, если пакет соотвествует заданному критерию. Чаще всего употребляются действия ACCEPT и DROP. Однако, давайте кратко рассмотрим понятие переходов.Описание переходов в правилах выглядит
Целевые действия
Целевые действия Целевые действия играют ключевую роль в конверсии сайта. При работе с ними ваша задача – определить, какое действие сделать основным на сайте. Это может быть «Звонок по телефону» или «Оформление покупки в интернет-магазине».Если вы принимаете звонки с
Время действия
Время действия Время действия блокировки строки при обычной активности чтения/записи является оптимистическим - не выполняется никакая блокировка никаких строк до того момента, когда она действительно нужна. Пока изменения строки не отправлены на сервер, строка
5 Действия
5 Действия ДЛЯ УСТРОЙСТВ С МАЛЕНЬКИМ ДИСПЛЕЕМ, помещающихся на ладони, сенсорный экран — это естественный выбор. В сущности, благодаря ему мобильное устройство (а не только клавиатура или трекбол) превращается в интерактивную поверхность. Именно поэтому телефонов, экран
Завершающие действия
Завершающие действия После взлома вы должны провести оценку случившегося. Следовал ли ваш персонал намеченным целям и приоритетам? Какие уроки вы извлекли? Что бы вы хотели в дальнейшем сделать по-другому? Возвращены ли ваши системы в безопасное состояние и не осталось
5.3.4. Действия над слайдами
5.3.4. Действия над слайдами Над слайдами возможны следующие действия: создание, удаление, пропуск, изменение порядка слайдов, переход от предыдущего к следующему.Создание слайдаДобавление слайда происходит с помощью кнопки New (Новый), расположенной на панели
Действия с изображениями
Действия с изображениями При выборе любого изображения на панели инструментов Проводника автоматически появляются кнопки для выполнения типичных действий с такими файлами.? Просмотр. После щелчка на этой кнопке изображение будет открыто с помощью программы, которая