Я так понимаю, вам нужны системные / библиотечные вызовы, которые выполняются из определенной программы, а не из всех.
strace
показывает все внешние вызовы из исполняемой программы. Если программа имеет графический интерфейс пользователя, их будет тысячи - усложните их анализ «на экране».
Чтобы сохранить все вызовы, вы можете перенаправить вывод strace
в файл:
strace your_executable 2> my_log_file
, который закроется при выходе из программы. Затем вы можете просматривать / искать файл в любом текстовом средстве просмотра / редакторе. Дополнительную информацию можно получить из man strace
или, например, из. linux.die.net/man/1/strace . На этой странице показаны некоторые интересные способы использования strace
.
Для полноты : Стивен Харрис предложил ниже:
FWIW, strace -o log_file -f your_executable может быть лучше; флаг -o заставляет strace отправлять туда выходные данные, а -ff означает, что если программа вызывает fork (), то этот дочерний процесс также выполняется. app -ff может быть лучше, поэтому данные каждого дочернего процесса находятся в собственном файле журнала. strace показывает системные вызовы; ltrace может отображать вызовов библиотеки.
И даже больше от Марка Плотника:
Да, команда ltrace -c -S ... это то, что нужно использовать для отображения количества библиотечных и системных вызовов .