相关疑难解决方法(0)

如何对Perl中的所有致命错误强制执行堆栈回溯?

在Perl中,有没有办法强制所有致命错误显示像Carp::confess产生的堆栈回溯?

我知道你可以use warnings FATAL => 'all';对目前的词汇范围发出致命警告.

此外,可以使用$SIG{__WARN__} = sub { CORE::die(@_) };所有警告致命(没有本地化SIGWARN处理程序).

有没有干净的方法来做到这一点,还是我需要调整SIGDIE?如果我写一个SIGDIE处理程序,获取跟踪的最佳方法是什么?

理想的解决方案适用于标准测试库Test::More和朋友.

更新: Mark Johnson建议使用SIGDIE处理程序进行调用Carp::confess.它工作得很好.这是代码:

use Carp;
$SIG{ __DIE__ } = sub { Carp::confess( @_ ) };
Run Code Online (Sandbox Code Playgroud)

perl

24
推荐指数
2
解决办法
3089
查看次数

标签 统计

perl ×1