php - 如何调试 fatal error : Allowed memory size of XXXX bytes exhausted (tried to allocate VVV bytes)

标签 php memory logging error-handling

所以,我知道我遇到的具体错误是什么( fatal error :允许的内存大小为 134217728 字节已用尽(试图分配 71 字节)以及导致它的原因。
我不是在寻找解决方案。
我试图学习的是,当这种类型的错误发生时,或者甚至可能发生时,我将如何将 $_SESSION 和 $_REQUEST 和堆栈跟踪转储到文件中。

最佳答案

如果没有额外的模块,这是不可能的——一旦达到内存限制,它就会立即崩溃。但是,您可以安装 Xdebug 模块并让它记录您想要的堆栈跟踪。

以下是有关使用 xdebug 配置所需的确切转储的一些信息:http://xdebug.org/docs/stack_trace

您可以告诉 xdebug 您希望转储特定变量和 super 全局变量。这应该可以满足您的需求。

同样,您可以安装 Newrelic,但与 xdebug 一样,它需要加载一个共享模块,并且您会受到性能影响(在这种情况下它不是免费的)。

关于php - 如何调试 fatal error : Allowed memory size of XXXX bytes exhausted (tried to allocate VVV bytes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24663209/

相关文章:

php -\Monolog\Formatter\LineFormatter 中的毫秒数 (PHP)

php - 您如何通过单击(网络)按钮重新启动 Apache?

android - 可以分配给 Android 应用程序的最大 native 内存

logging - 使用数据库/应用程序服务器日志分析 Web 应用程序使用情况和用户模式?

Java 内存泄漏 - 在程序终止时清除?

go - 有什么简单的方法可以找出一个结构的实例占用多少内存**包括**它指向的东西的大小?

java - log4j2 扩展 Logger 类

php - 我将如何创建一个能够将 txt 导入 mysql 的解析器

php - 如何在 mPDF 中使用 bootstrap?

php - 检查流量是否来自特定 URL?