我知道这个成语:
eval {
...
};
$DB::single = 1 if $@;
Run Code Online (Sandbox Code Playgroud)
...但是,据我所知,如果调试器在eval检测到堆栈中的帧已经太晚之后就停止了,因为它们恰好是错误发生的瞬间.
有没有办法在错误发生时准确地停止调试器,并检查调用堆栈中的帧?
我可能会在错误类型的对象上调用方法x,但是它在我的调用堆栈中下降了,因此并不明显。
因此:有一种方法可以在发生此错误时始终打印完整的堆栈跟踪记录吗?