找到两个堆栈跟踪的差异/"相对堆栈跟踪"用PHP?

时间:2016-12-25 22:18:34

标签: php stack-trace backtrace debug-backtrace

在PHP中,您可以从\Exception::getTrace()debug_backtrace()获取堆栈跟踪数组。

同一进程/请求中的两个堆栈跟踪通常有一些共同的调用,然后是一些独立的调用。或者有时一个堆栈跟踪可能完全包含在另一个更深的堆栈跟踪中。

E.g。如果你捕获一个异常,然后在catch块中调用debug_backtrace(),那么这通常是异常回溯的子跟踪。

出于调试目的,仅查看与包含try / catch的函数相关的跟踪部分会很有趣。

获得此部分或相对堆栈跟踪的优雅方法是什么?

我确实知道如何自己做,并可能将此作为答案发布。但如果有更好的方法,我很好奇。

我期望的一个特殊困难:两条轨迹上的两个项目看起来都是一样的,即使它们实际上是不同的。我假设从同一个循环发出的两个调用是无法区分的。我想知道是否有任何技巧可以让它们与众不同。

0 个答案:

没有答案