加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:50:39 所属栏目:大数据 来源:网络整理
导读:在perl 5中,我将使用任何Carp函数.在perl 6中,搜索没有帮助,trace pragma将打印所有堆栈,而不仅仅是我想要的堆栈.我只能使用抛出异常,捕获它并打印它的旧hack: try { X::AdHoc.new(payload = 'Stack').throw; CATCH { when X::AdHoc { .say; } }} 或者,有点
在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查看一些通常隐藏的其他低级堆栈帧.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读