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   671377 use 5.018;
  6         56  
3 6     6   34 use warnings;
  6         18  
  6         151  
4 6     6   2798 use XS::libpanda;
  6         51325  
  6         224  
5 6     6   2769 use XS::libdwarf;
  6         8398  
  6         205  
6 6     6   2483 use XS::Framework;
  6         52032  
  6         383  
7              
8             use overload
9 47     47   8291 '""' => sub { shift->{_value} },
10 6     6   49 fallback => 1;
  6         22  
  6         49  
11              
12             our $VERSION = '1.0.8';
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 36688 $SIG{__DIE__} = $handler;
27             };
28              
29             sub new {
30 13     13 0 26884 my ($class, $value) = @_;
31 13         46 my $obj = { _value => $value };
32 13         1484 return bless $obj => $class;
33             }
34              
35              
36             1;