调试 – 是否有规范的方法在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查看一些通常隐藏的其他低级堆栈帧.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |