如何确定程序试图打开哪些文件?

use*_*501 3 linux debugging executable file

我有一个为 Linux 服务器编译的程序。它是用 FORTRAN 编写的,尽管我认为这与这个问题不是特别相关。

在某个时刻,程序会输出open: No such file or directory

然后终止。

问题是我不知道程序试图打开哪个文件/目录。

如果有某种程序,有点像ldd(但不完全一样),可以运行它来显示二进制可执行文件正在尝试打开哪些文件,那就太好了。

这样的事情存在吗?如果没有的话有没有办法从Linux内核获取这些信息?

dat*_*olf 5

man strace

就你而言strace -e openat $YOURPOGRAM