保存特定节点时,我的Drupal 7遇到WSOD,这会显示在错误日志中:
PHP Fatal error: Allowed memory size of 633339904 bytes exhausted (tried to allocate 84 bytes) in /var/www/mysite.org/includes/form.inc on line 1780, referer: http://mysite.or/node/193/edit
保存其他节点时,此节点似乎有问题。我怎样才能弄清楚是什么函数使内存最大化?你是如何开始调试这样的东西的?如果Drupal在看门狗中记录了一个错误,但也没有,那会更有帮助。
正如您将看到的,PHP有大量的600M允许内存(这是一个16GB RAM的大型站点)。
有什么想法吗?
从技术上讲,您可以捕获关闭函数中的错误:
register_shutdown_function(function() {
var_dump(error_get_last());
});
但是,如果您已经有了发生问题的类型、文件和行,那就没有多大用处了。在实践中,您通常希望通过在需要的地方插入debug_backtrace()
、var_dump()
和die()
语句来了解发生了什么。