2014-10-07 53 views
2

​​很有用,但它不包括使用fopen或file_get_contents打开的文件。如何找出应用程序打开了哪些文件?

我也尝试过使用strace,但我似乎无法回家在特定的PHP过程中。

更具体地说,我使用twig进行模板化,我想知道按什么顺序包含哪些文件。

我到目前为止试图使用像这样的strace,但我得到的权限错误附加到过程。

<?php 

$pid = getmypid(); 

echo `strace -p {$pid} 2>&1 > log &`; 

file_put_contents('afile', 'foobar'); 

输出...

strace的:附:ptrace的(PTRACE_ATTACH,...):操作不允许 无法附加到进程。如果您的uid与目标 进程的uid匹配,请检查/ proc/sys/kernel/yama/ptrace_scope或 作为root用户的设置。有关详细信息,请参阅 /etc/sysctl.d/10-ptrace.conf

+0

我会假设小枝可以给你这个信息。 – Marek 2014-10-07 09:46:56

+0

也许,我现在正在看那个角度,但即使如此,我认为这将在更广泛的背景下有用。 – 2014-10-07 09:50:44

+0

这会增加潜在的大开销。您仍然可以使用xdebug的功能跟踪功能。 – Marek 2014-10-07 11:28:10

回答

0

您可以使用一个经典的解决方法:

包装所有文件打开功能,例如:my_fopen,并做记录有。

只需几行代码+搜索&即可替换代码库。

+0

谢谢,这是一个很好的提示,但代码库非常大,并且包含大量第三方供应商代码。 – 2014-10-08 11:28:01

相关问题