【发布时间】:2014-11-12 08:40:41
【问题描述】:
我在我的 php 错误日志中收到以下错误消息:
PHP 致命错误:第 284 行 /lib/Zend/Db/Statement/Pdo.php 中允许的内存大小为 1073741824 字节已用尽(尝试分配 5 个字节)
但是,我想要完整的堆栈跟踪,知道如何获得它吗?
【问题讨论】:
标签: php memory stack-trace backtrace
我在我的 php 错误日志中收到以下错误消息:
PHP 致命错误:第 284 行 /lib/Zend/Db/Statement/Pdo.php 中允许的内存大小为 1073741824 字节已用尽(尝试分配 5 个字节)
但是,我想要完整的堆栈跟踪,知道如何获得它吗?
【问题讨论】:
标签: php memory stack-trace backtrace
看起来你的 PHP 配置 (php.ini) 不允许超过 1GB 的内存,这对于 PHP 脚本来说真的很大。
确保你没有处理无限循环。当对大文件或大型数据库查询执行无限循环时,可能会在脚本停止工作之前内存已满@987654322 @错误。
如果您的提供商允许,您可以扩展内存使用量,如果需要,可以给它ini_set("memory_limit","2G") 或更多(不推荐)。
如果你真的想调试这个,在这种情况下使用 php "self-debuggers",把
echo "<pre>".print_r(debug_backtrace(),true)."</pre>";
exit;
在错误发生之前,这会显示带有参数、方法、...的完整堆栈树
您也可以将debug_backtrace() 的输出存储在var 中并自行处理。
【讨论】:
您可以看到带有堆栈跟踪的 Xdebug。
【讨论】: