File Coverage

blib/arch/Exception/Backtrace.pm
Criterion Covered Total %
statement 22 22 100.0
branch n/a
condition n/a
subroutine 9 9 100.0
pod 0 2 0.0
total 31 33 93.9


line stmt bran cond sub pod time code
1             package Exception::Backtrace;
2 6     6   520893 use 5.018;
  6         42  
3 6     6   28 use warnings;
  6         12  
  6         118  
4 6     6   2397 use XS::libpanda;
  6         39425  
  6         170  
5 6     6   2170 use XS::libdwarf;
  6         7246  
  6         163  
6 6     6   2052 use XS::Framework;
  6         40143  
  6         290  
7              
8             use overload
9 47     47   6315 '""' => sub { shift->{_value} },
10 6     6   38 fallback => 1;
  6         9  
  6         35  
11              
12             our $VERSION = '1.0.9';
13              
14              
15             require XS::Loader;
16             XS::Loader::load();
17              
18              
19             my $handler = sub {
20             my $ex = shift;
21             my $wrapped_ex = Exception::Backtrace::safe_wrap_exception($ex);
22             die($wrapped_ex) if ($wrapped_ex)
23             };
24              
25             sub install {
26 6     6 0 28178 $SIG{__DIE__} = $handler;
27             };
28              
29             sub new {
30 13     13 0 20739 my ($class, $value) = @_;
31 13         37 my $obj = { _value => $value };
32 13         1337 return bless $obj => $class;
33             }
34              
35              
36             1;