Как вывести список системных вызовов и вызовов библиотек в Unix? [закрыто]

-2
07.09.2016, 01:45
1 ответ

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

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 ... это то, что нужно использовать для отображения количества библиотечных и системных вызовов .

2
28.01.2020, 05:17

Теги

Похожие вопросы