Subject: | IPC::Run in a BEGIN{} block crashes Devel::Cover |
$ perl -MDevel::Cover run.pl
error: Illegal seek at run.pl line 13
main::BEGIN() called at run.pl line 14
eval {...} called at run.pl line 14
BEGIN failed--compilation aborted at run.pl line 14.
Devel::Cover 0.64: Collecting coverage data for branch, condition, pod,
statement, subroutine and time.
Selecting packages matching:
Ignoring packages matching:
/Devel/Cover[./]
Ignoring packages in:
.
/usr/lib/perl5/5.10.0
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/vendor_perl/5.10.0
/usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi
/usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi
Devel::Cover: Writing coverage database to
/home/gene/src/cover_db/runs/1277934484.21728.31485
---------------------------- ------ ------ ------ ------ ------ ------ -
-----
File stmt bran cond sub pod time
total
---------------------------- ------ ------ ------ ------ ------ ------ -
-----
run.pl 100.0 50.0 n/a 100.0 n/a 100.0
96.2
Total 100.0 50.0 n/a 100.0 n/a 100.0
96.2
---------------------------- ------ ------ ------ ------ ------ ------ -
-----
[gene@mt src]$ ls -l core.21729
-rw-------. 1 gene gene 15921152 2010-06-30 14:48 core.21729
[gene@mt src]$ gdb `which perl` core.21729
GNU gdb (GDB) Fedora (7.0.1-48.fc12)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/perl...Reading symbols from
/usr/lib/debug/usr/bin/perl5.10.0.debug...done.
done.
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/CORE/libperl.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/CORE/libperl.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/CORE/libperl.so
Reading symbols from /lib64/libresolv-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/libresolv-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/libresolv-2.11.2.so
Reading symbols from /lib64/libnsl-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/libnsl-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/libnsl-2.11.2.so
Reading symbols from /lib64/libdl-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/libdl-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/libdl-2.11.2.so
Reading symbols from /lib64/libm-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/libm-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/libm-2.11.2.so
Reading symbols from /lib64/libcrypt-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/libcrypt-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/libcrypt-2.11.2.so
Reading symbols from /lib64/libutil-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/libutil-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/libutil-2.11.2.so
Reading symbols from /lib64/libpthread-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/libpthread-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/libpthread-2.11.2.so
Reading symbols from /lib64/libc-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/libc-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/libc-2.11.2.so
Reading symbols from /lib64/ld-2.11.2.so...Reading symbols from
/usr/lib/debug/lib64/ld-2.11.2.so.debug...done.
done.
Loaded symbols for /lib64/ld-2.11.2.so
Reading symbols from /lib64/libfreebl3.so...(no debugging symbols
found)...done.
Loaded symbols for /lib64/libfreebl3.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/B/B.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/B/B.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/B/B.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Cwd/Cwd.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Cwd/Cwd.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Cwd/Cwd.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/List/Util/Util.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/List/Util/Util.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/List/Util/Util.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Digest/MD5/MD5.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Digest/MD5/MD5.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Digest/MD5/MD5.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/IO/IO.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/IO/IO.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/IO/IO.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Fcntl/Fcntl.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Fcntl/Fcntl.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Fcntl/Fcntl.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Storable/Storable.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Storable/Storable.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Storable/Storable.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/File/Glob/Glob.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/File/Glob/Glob.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/File/Glob/Glob.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Data/Dumper/Dumper.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Data/Dumper/Dumper.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/Data/Dumper/Dumper.so
Reading symbols from /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-
thread-multi/auto/Devel/Cover/Cover.so...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-
thread-multi/auto/Devel/Cover/Cover.so
Reading symbols from /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/POSIX/POSIX.so...Reading symbols from
/usr/lib/debug/usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/POSIX/POSIX.so.debug...done.
done.
Loaded symbols for /usr/lib64/perl5/5.10.0/x86_64-linux-thread-
multi/auto/POSIX/POSIX.so
Reading symbols from /lib/modules/2.6.32.14-
127.fc12.x86_64/vdso/vdso.so...Reading symbols from
/usr/lib/debug/lib/modules/2.6.32.14-
127.fc12.x86_64/vdso/vdso.so.debug...done.
done.
Loaded symbols for /lib/modules/2.6.32.14-127.fc12.x86_64/vdso/vdso.so
Core was generated by `perl -MDevel::Cover run.pl'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f224e3667d6 in XS_Devel__Cover_get_ends ()
from /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-
multi/auto/Devel/Cover/Cover.so
Missing separate debuginfos, use: debuginfo-install nss-softokn-freebl-
3.12.6-2.fc12.1.x86_64 perl-Devel-Cover-0.64-3.fc12.x86_64
(gdb) where
#0 0x00007f224e3667d6 in XS_Devel__Cover_get_ends ()
from /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-
multi/auto/Devel/Cover/Cover.so
#1 0x00000035e52bb12a in Perl_pp_entersub (my_perl=0x7f0010) at
pp_hot.c:2850
#2 0x00007f224e361e1c in ?? () from
/usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-
multi/auto/Devel/Cover/Cover.so
#3 0x00000035e52f80b5 in S_docatch (my_perl=<value optimized out>,
o=<value optimized out>) at pp_ctl.c:2678
#4 0x00007f224e36448b in ?? () from
/usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-
multi/auto/Devel/Cover/Cover.so
#5 0x00000035e52b60e6 in Perl_call_sv (my_perl=<value optimized out>,
sv=0x113e8c0, flags=<value optimized out>)
at perl.c:2638
#6 0x00007f224e364b67 in ?? () from
/usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-
multi/auto/Devel/Cover/Cover.so
#7 0x00000035e52b652d in Perl_call_sv (my_perl=<value optimized out>,
sv=0x155e448, flags=<value optimized out>)
at perl.c:2653
#8 0x00000035e52b6afd in Perl_call_list (my_perl=<value optimized out>,
oldscope=<value optimized out>,
paramList=<value optimized out>) at perl.c:5146
#9 0x00000035e525e357 in S_process_special_blocks (my_perl=0x7f0010,
fullname=<value optimized out>, gv=0x811ef0,
cv=0x155e448) at op.c:5643
#10 0x00000035e526ca5f in Perl_newATTRSUB (my_perl=0x7f0010,
floor=<value optimized out>, o=<value optimized out>,
proto=<value optimized out>, attrs=<value optimized out>,
block=<value optimized out>) at op.c:5616
#11 0x00000035e525c608 in Perl_yyparse (my_perl=0x7f0010) at perly.y:551
#12 0x00000035e52b4899 in S_parse_body (my_perl=0x7f0010, env=<value
optimized out>, xsinit=<value optimized out>)
at perl.c:2237
#13 0x00000035e52b780e in perl_parse (my_perl=<value optimized out>,
xsinit=<value optimized out>,
argc=<value optimized out>, argv=0x7fff946ed778, env=<value
optimized out>) at perl.c:1657
#14 0x0000000000400c7f in main (argc=3, argv=0x7fff946ed778,
env=0x7fff946ed798) at perlmain.c:111
(gdb)
Subject: | run.pl |
#!/usr/bin/env perl
use strict;
use warnings;
use Carp;
use English qw( -no_match_vars ); # Avoids regex performance penalty
use IPC::Run qw( run timeout );
BEGIN {
my @cmd = qw(/bin/true);
my ( $in, $out, $err );
run \@cmd, \$in, \$out, \$err or confess("error: $OS_ERROR");
}