| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Sentry::Stacktrace::Frame; |
|
2
|
6
|
|
|
6
|
|
265585
|
use Mojo::Base -base, -signatures; |
|
|
6
|
|
|
|
|
32
|
|
|
|
6
|
|
|
|
|
45
|
|
|
3
|
|
|
|
|
|
|
|
|
4
|
6
|
|
|
6
|
|
1914
|
use Config qw(%Config); |
|
|
6
|
|
|
|
|
17
|
|
|
|
6
|
|
|
|
|
320
|
|
|
5
|
6
|
|
|
6
|
|
45
|
use Mojo::File; |
|
|
6
|
|
|
|
|
25
|
|
|
|
6
|
|
|
|
|
265
|
|
|
6
|
6
|
|
|
6
|
|
29
|
use Mojo::Home; |
|
|
6
|
|
|
|
|
10
|
|
|
|
6
|
|
|
|
|
260
|
|
|
7
|
6
|
|
|
6
|
|
1429
|
use Sentry::SourceFileRegistry; |
|
|
6
|
|
|
|
|
15
|
|
|
|
6
|
|
|
|
|
73
|
|
|
8
|
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
has [qw(module filename line subroutine)]; |
|
10
|
|
|
|
|
|
|
has _source_file_registry => sub { Sentry::SourceFileRegistry->new }; |
|
11
|
|
|
|
|
|
|
has _home => sub { Mojo::Home->new->detect }; |
|
12
|
|
|
|
|
|
|
|
|
13
|
8
|
|
|
8
|
|
13
|
sub _is_in_app ($self) { |
|
|
8
|
|
|
|
|
9
|
|
|
|
8
|
|
|
|
|
11
|
|
|
14
|
|
|
|
|
|
|
return substr($self->filename, 0, 1) ne '/' |
|
15
|
8
|
|
66
|
|
|
23
|
|| ( index($self->filename, $Config{siteprefix}) == -1 |
|
16
|
|
|
|
|
|
|
&& index($self->filename, $self->_home) > -1); |
|
17
|
|
|
|
|
|
|
} |
|
18
|
|
|
|
|
|
|
|
|
19
|
8
|
|
|
8
|
|
14
|
sub _map_file_to_context ($self) { |
|
|
8
|
|
|
|
|
13
|
|
|
|
8
|
|
|
|
|
9
|
|
|
20
|
8
|
|
|
|
|
21
|
return $self->_source_file_registry->get_context_lines($self->filename, |
|
21
|
|
|
|
|
|
|
$self->line); |
|
22
|
|
|
|
|
|
|
} |
|
23
|
|
|
|
|
|
|
|
|
24
|
8
|
|
|
8
|
|
299
|
sub _relative_filename ($self) { |
|
|
8
|
|
|
|
|
12
|
|
|
|
8
|
|
|
|
|
11
|
|
|
25
|
8
|
|
|
|
|
18
|
return Mojo::File::path($self->filename)->to_rel($self->_home)->to_string; |
|
26
|
|
|
|
|
|
|
} |
|
27
|
|
|
|
|
|
|
|
|
28
|
8
|
|
|
8
|
0
|
345333
|
sub TO_JSON ($self) { |
|
|
8
|
|
|
|
|
13
|
|
|
|
8
|
|
|
|
|
13
|
|
|
29
|
|
|
|
|
|
|
return { |
|
30
|
|
|
|
|
|
|
in_app => \($self->_is_in_app()), |
|
31
|
|
|
|
|
|
|
abs_path => $self->filename, |
|
32
|
|
|
|
|
|
|
file_name => $self->_relative_filename, |
|
33
|
|
|
|
|
|
|
lineno => $self->line, |
|
34
|
|
|
|
|
|
|
module => $self->module, |
|
35
|
|
|
|
|
|
|
function => $self->subroutine, |
|
36
|
8
|
|
|
|
|
26
|
%{ $self->_map_file_to_context() }, |
|
|
8
|
|
|
|
|
1071
|
|
|
37
|
|
|
|
|
|
|
}; |
|
38
|
|
|
|
|
|
|
} |
|
39
|
|
|
|
|
|
|
|
|
40
|
2
|
|
|
2
|
0
|
2
|
sub from_caller ($package, $module, $filename, $line, $subroutine, @args) { |
|
|
2
|
|
|
|
|
4
|
|
|
|
2
|
|
|
|
|
3
|
|
|
|
2
|
|
|
|
|
2
|
|
|
|
2
|
|
|
|
|
3
|
|
|
|
2
|
|
|
|
|
2
|
|
|
|
2
|
|
|
|
|
3
|
|
|
|
2
|
|
|
|
|
2
|
|
|
41
|
2
|
|
|
|
|
9
|
return $package->new({ |
|
42
|
|
|
|
|
|
|
module => $module, |
|
43
|
|
|
|
|
|
|
filename => $filename, |
|
44
|
|
|
|
|
|
|
line => $line, |
|
45
|
|
|
|
|
|
|
subroutine => $subroutine |
|
46
|
|
|
|
|
|
|
}); |
|
47
|
|
|
|
|
|
|
} |
|
48
|
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
1; |