调试 – 是否有规范的方法在perl 6中打印堆栈跟踪?

前端之家收集整理的这篇文章主要介绍了调试 – 是否有规范的方法在perl 6中打印堆栈跟踪?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在perl 5中,我将使用任何Carp函数.在perl 6中,搜索没有帮助,trace pragma将打印所有堆栈,而不仅仅是我想要的堆栈.我只能使用抛出异常,捕获它并打印它的旧hack:
try {
    X::AdHoc.new(payload => 'Stack').throw;
    CATCH { when X::AdHoc { .say; } }
}

或者,有点懒惰:

{
    die;
    CATCH { default { .say } }
}

这样做的正确方法是什么?

解决方法

我实际上在写这个问题时找到了答案,并决定在这里发布,因为它没有出现在我以前的任何搜索中. Perl 6的 Backtrace类将获得堆栈跟踪并将其转换为字符串:
say "Stack: " ~ Backtrace.new;

(使用Backtrace.new.full查看一些通常隐藏的其他低级堆栈帧.)

原文链接:https://www.f2er.com/Perl/172119.html

猜你在找的Perl相关文章