我正在使用PHP开发一个小型的应用程序。在几天前的某个时候,当我尝试在应用程序中加载和处理一些数据时,PHP开始在我的开发机器(而不是prod服务器)上进行段错误。
我附加了gdb以试图查看段错误发生的位置,但基本上无处可去。回溯包含一堆call_func
- 事物(约50),最后一个函数是mpm_prefork
。我认为这是mpm_prefork
的错,所以我安装了php-fpm并尝试使用mpm_event
,但它仍然是段错误。
我注意到如果我从数据库中删除所有数据(我使用的是SQLite),它就不再是段错误了,所以我尝试将数据导出到MySQL数据库中,但仍然是段错误。
总之,当数据加载并处理输出时,似乎会发生段错误。
我使用的是PHP 5.5.12和Apache 2.4.9,两者都是(我相信)最新版本。
我的问题是:当发生段错误时,我能否以某种方式获取PHP的堆栈?或者也许我可以在某个地方使用PHP记录每个函数调用来查看哪个函数调用导致崩溃?
此外,PHP是否有堆栈限制?我可能会打电话给很多功能吗? (据我记忆,这个过程中没有涉及递归。)
谢谢。