Как определить, какие файлы пытается открыть программа? - PullRequest
0 голосов
/ 08 июня 2019

У меня есть программа, которую я скомпилировал для сервера Linux. Это было написано на фортране, хотя я не думаю, что это особенно актуально для вопроса.

В какой-то момент программа выплевывает open: No such file or directory

А затем завершается.

Проблема в том, что я не знаю, какой файл / каталог программа пытается открыть.

Было бы здорово, если бы была какая-то программа, похожая на ldd (но не совсем), которая могла бы быть запущена, чтобы показать, какие файлы пытается открыть исполняемый двоичный файл.

Существует ли такая вещь? Если нет, то есть ли способ получить такую ​​информацию из ядра Linux?

Ответы [ 2 ]

1 голос
/ 08 июня 2019

Существует программа под названием strace, которая может сделать это

strace -f -e open <exe>

См. https://linux -audit.com / монитор-файл-доступ-по-процессам linux /

1 голос
/ 08 июня 2019

man strace

В вашем случае strace -e openat $YOURPOGRAM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...