Subject: | segmentation fault on indirect_ck_method |
I got a segmentation falt with perl-5.12.1 + indirect.pm and perl-5.8.9
+ indirect.pm.
tokuhirom@gpath% /home/tokuhirom/perl5/perlbrew/perls/perl-5.12.1-
DDEBUGGING/bin/perl -e 'use indirect; BEGIN {
indirect::unimport(__PACKAGE__, ":fatal") }; my ($x, $y); "@{[ $x->$y
]}"'
zsh: segmentation fault /home/tokuhirom/perl5/perlbrew/perls/perl-
5.12.1-DDEBUGGING/bin/perl -e
tokuhirom@gpath% gdb --args /home/tokuhirom/perl5/perlbrew/perls/perl-
5.12.1-DDEBUGGING/bin/perl -e 'use indirect; BEGIN {
indirect::unimport(__PACKAGE__, ":fatal") }; my ($x, $y); "@{[ $x->$y
]}"'
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 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-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/tokuhirom/perl5/perlbrew/perls/perl-5.12.1-
DDEBUGGING/bin/perl...done.
(gdb) run
Starting program: /home/tokuhirom/perl5/perlbrew/perls/perl-5.12.1-
DDEBUGGING/bin/perl -e use\ indirect\;\ BEGIN\ \{\
indirect::unimport\(__PACKAGE__,\ \":fatal\"\)\ \}\;\ my\ \(\$x,\
\$y\)\;\ \"@\{\[\ \$x-\>\$y\ \]\}\"
Program received signal SIGSEGV, Segmentation fault.
indirect_ck_method (o=0x8a68d0) at indirect.xs:662
662 if (!SvPOK(sv) || (SvTYPE(sv) < SVt_PV))
(gdb) bt
#0 indirect_ck_method (o=0x8a68d0) at indirect.xs:662
#1 0x000000000042943c in Perl_newUNOP (type=172, flags=1,
first=0x8a82e0) at op.c:3110
#2 0x00000000004746fa in Perl_yyparse () at perly.y:742
#3 0x000000000043ba84 in S_parse_body (env=<value optimized out>,
xsinit=<value optimized out>) at perl.c:2160
#4 0x000000000043e98c in perl_parse (my_perl=<value optimized out>,
xsinit=<value optimized out>, argc=<value optimized out>,
argv=0x7fffffffe188, env=<value optimized out>) at perl.c:1605
#5 0x00000000004200b3 in main (argc=3, argv=0x7fffffffe188,
env=0x7fffffffe1a8) at perlmain.c:115
(gdb) quit
A debugging session is active.
Inferior 1 [process 25233] will be killed.
Quit anyway? (y or n) y
tokuhirom@gpath% /home/tokuhirom/perl5/perlbrew/perls/perl-5.12.1-
DDEBUGGING/bin/perl -V
[~/tmp/20100816] 月 16 8:46
Summary of my perl5 (revision 5 version 12 subversion 1) configuration:
Platform:
osname=linux, osvers=2.6.32-23-server, archname=x86_64-linux
uname='linux gpath 2.6.32-23-server #37-ubuntu smp fri jun 11
09:11:11 utc 2010 x86_64 gnulinux '
config_args='-de -Dprefix=/home/tokuhirom/perl5/perlbrew/perls/perl-
5.12.1-DDEBUGGING -DDEBUGGING'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-DDEBUGGING -fno-strict-aliasing -pipe -fstack-
protector -I/usr/local/include -D_LARGEFILE_SOURCE -
D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -
I/usr/local/include'
ccversion='', gccversion='4.4.3', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=/lib/libc-2.11.1.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.11.1'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -
fstack-protector'
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES
USE_PERLIO USE_PERL_ATOF
Built under linux
Compiled at Aug 16 2010 08:25:49
%ENV:
PERL_AUTOINSTALL="--defaultdeps"
PERL_BADLANG="0"
@INC:
/home/tokuhirom/perl5/perlbrew/perls/perl-5.12.1-
DDEBUGGING/lib/site_perl/5.12.1/x86_64-linux
/home/tokuhirom/perl5/perlbrew/perls/perl-5.12.1-
DDEBUGGING/lib/site_perl/5.12.1
/home/tokuhirom/perl5/perlbrew/perls/perl-5.12.1-
DDEBUGGING/lib/5.12.1/x86_64-linux
/home/tokuhirom/perl5/perlbrew/perls/perl-5.12.1-
DDEBUGGING/lib/5.12.1
.