Closed KalessinD closed 2 years ago
Alternatively we could just make sure the values returned by the $l
function call are set
my $l = sub {
my ($cv) = @_;
my $line = 0;
my ($name, $start) = sub_info($cv);
if ($start) {
local ($Line, $File);
get_location($start);
$line = $Line;
# print STDERR "$name - $File:$Line\n";
}
+ $line = 0 unless defined $line;
+ $name = '' unless defined $name;
($line, $name)
};
Hi,
and i'm seeing this on s390 architecture:
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 557.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in substitution (s///) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 558.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in exists at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 562.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 563.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 563.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in exists at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 461.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in substitution (s///) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 466.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in substitution (s///) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 467.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in exists at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 469.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 478.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 478.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 478.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 478.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 478.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 478.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in -e at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 486.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in substitution (s///) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 496.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in open at /usr/local/lib64/perl5/5.32/Devel/Cover/DB/Structure.pm line 189.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in lc at /usr/local/lib64/perl5/5.32/Devel/Cover/DB/Structure.pm line 193.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $f in hash element at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 504.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $f in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 573.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $f in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 574.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $f in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 574.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $f in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 574.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $f in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 574.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $f in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 574.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $f in pattern match (m//) at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 574.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in -e at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 577.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in hash element at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 577.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in hash element at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 579.
[2022-02-10T09:08:21.082Z] Use of uninitialized value $file in hash element at /usr/local/lib64/perl5/5.32/Devel/Cover.pm line 583.
Sorry for the noise, updating my Docker fedora:latest image to Fedora 35 solved the issue, it seems.
We can reproduce the issue in openSUSE Tumbleweed with perl version 5.34 as well.
Thanks to everyone for the information and fixes!
Hi!
We had updated Perl upto 5.34.0 and got an impressive amount of warnings with the following message:
These messages occures at
check_files
method because of lambda function returns undefined values.In my case the reason was the situation when
$start->can('file')
is false. I'd made some debug and found that it happens only ifref($start) eq 'lineseq'
and$name eq '_after_some_event'
or$name eq 'apply_update_defaults'
.I made a simple hotfix. It is posted below:
Hope that this information will help you to make a correct fix for new perl version.