如何在php中触发核心转储?

时间:2015-02-25 14:36:59

标签: php coredump

偶尔我的网络应用程序 - 但很少 - 抛出一个特殊的异常。我不知道它为什么会发生,我还没有能够重现它,或者看到它发生在我的生产服务器上以外的任何地方。因此,我希望能够在发生特定异常时转储整个当前的php状态,以便跟踪其执行情况并找出触发它的原因。

我无法使用xdebug,因为这是一个生产服务器,xebug会降低执行速度(已经足够慢)。那么,我怎么能告诉php转储它的当前状态,所以我可以稍后检查它?

我能想到的唯一一件事就是使用execkill当前进程,但这看起来非常混乱,如果我可以转储php状态会更好而不是apache状态。我甚至不知道这是否可能......

1 个答案:

答案 0 :(得分:0)

debug_backtrace()提供了所有请求的参数和函数,以便您可以看到它的路径和调用它的内容。

您可以将其保存到文件中并逐个查看

http://php.net/manual/en/function.debug-backtrace.php