2

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

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

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

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

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

我确实知道我自己会如何做,并且可能会将其发布为答案。但我很好奇是否有更好的方法。

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

4

0 回答 0