Проследить, какие системные вызовы использует наша программа, позволяет программа strace. Для ее установки нужно установить пакет strace.
Формат вызова команды strace следующий:
strace [-dffhiqrtttTvxx] [-acolumn] [-eexpr] ... [-ofile] [-ppid] ... [-sstrsize] [-uusername] [command | arg ...]]
Ключи программы перечислены в таблице 22.3.
Ключи командной строки strace Таблица 22.3
Ключ | Назначение |
---|---|
-с | Подсчитывать время, затраченное на каждый вызов и обработку ошибок. В конце трассировки будет представлен подробный отчет |
-d | Выводить отладочные сообщения самой программы strace на стандартный вывод ошибки |
-f | Трассировать дочерние процессы, созданные уже трассируемыми процессами |
-ff | Данная опция применятся только вместе с опцией -o имя_файла. Каждый трассируемый процесс будет записан в файл имя_файла.pid |
-F | Следовать вызовам vfork(). Данную опцию нельзя использовать вместе с опцией -f |
-h | Вывести справку |
-i | Выводить указатель инструкции во время системного вызова |
-q | «Тихий режим». Подавляет вывод некоторых сообщений |
-r | Выводить относительную метку времени для каждого вызова |
-t | Перед каждой строкой выводить текущее время |
-tt | То же, что и -t, но будут выводиться также микросекунды |
-T | Показывать время, потраченное на системный вызов (то есть разницу между временем запуска и временем завершения вызова). Для каждого вызова |
-v | Получение дополнительной информации |
-V | Вывести номер версии strace |
-X | Выводить не-ASCII строки в шестнадцатеричном формате |
-XX | Выводить все строки в шестнадцатеричном формате |
-a столбец | Выровнять возвращаемые вызовами значения в указанном столбце (по умолчанию 40) |
-e выражение | Позволяет задать отслеживаемые события. За более подробной информацией обратитесь к справочной системе |
-e trace=набор | Определить набор отслеживаемых вызовов. Например, trace=open,close,read,write |
Вы читаете Linux: Полное руководство