【发布时间】:2015-04-27 14:36:14
【问题描述】:
我的 Web 应用程序偶尔(但很少)会引发特定异常。我不知道它为什么会发生,而且我无法重现它,或者看到它发生在我的生产服务器之外的任何地方。因此,我希望能够在发生特定异常时转储 php 的整个当前状态,以便跟踪其执行情况并找出触发它的原因。
我不能使用 xdebug,因为这是一个生产服务器,并且 xebug 会减慢执行速度(这已经足够慢了)。那么,如何让 php 转储其当前状态,以便稍后检查呢?
我唯一能想到的就是使用exec到kill当前进程,但这看起来很乱,无论如何如果我可以转储php状态会更好,而不是阿帕奇州。我什至不知道这是否可能......
【问题讨论】:
-
如果这真的是异常而不是崩溃,您可以声明一个全局异常处理程序来收集堆栈跟踪等。
-
@Ja͢ck 是的,但是我如何获得其余的状态?即内存的内容,以及堆栈上层范围内的变量?