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

时间:2019-06-08 15:41:18

标签: linux file debugging executable

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

程序有时会弹出 private void Window_Loaded(object sender, RoutedEventArgs e) { browser.DocumentCompleted += OnDocumentCompleted; host.Child = browser; GridWeb.Children.Add(host); #region Collect All Offers foreach (var site in sites.OrderBy(x => x.Name)) { _site = site; url = site.Url; browser.Navigate(site.Url); } #endregion }

然后终止。

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

如果有某种程序,比如open: No such file or directory(但不完全是),它可以运行以显示二进制可执行文件试图打开的文件,那真是太好了。

这样的东西存在吗?如果没有,是否可以从Linux内核获取此类信息?

2 个答案:

答案 0 :(得分:1)

man strace

在您的情况下,strace -e openat $YOURPOGRAM

答案 1 :(得分:1)

有一个名为strace的程序可以做到这一点

strace -f -e open <exe>

请参见https://linux-audit.com/monitor-file-access-by-linux-processes/