develooper Front page | perl.perl5.porters | Postings from May 2008

[perl #55084] Debugger loops infinitely with __DIE__ and DESTROY

From:
Peter Scott
Date:
May 30, 2008 16:25
Subject:
[perl #55084] Debugger loops infinitely with __DIE__ and DESTROY
Message ID:
rt-3.6.HEAD-11257-1212167760-875.55084-75-0@perl.org
# New Ticket Created by  Peter Scott 
# Please include the string:  [perl #55084]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=55084 >


If you run the following, be prepared to kill it from another window:

   #!/usr/bin/perl -d

   sub Foo::new { bless {} , "Foo" }
   sub Foo::DESTROY { 1 }

   BEGIN {
     $SIG{__DIE__} = sub {
       my $foo = Foo->new;
       exit;
     };
   }

It will print the line

   Foo::DESTROY(/tmp/foo:4):       sub Foo::DESTROY { 1 }

repeatedly and be unstoppable from its own window.

This goes waaaay back.  It behaves as described in 5.10.0, 5.8.8, 
5.6.1.  In 5.004 it just hangs.  Same behavior on Linux and Solaris.

FWIW:

Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
   Platform:
     osname=linux, osvers=2.6.16-1.2133_fc5, archname=i686-linux
     uname='linux tweety 2.6.16-1.2133_fc5 #1 tue jun 6 00:52:14 edt 
2006 i686 athlon i386 gnulinux '
     config_args='-des -DDEBUGGING'
     hint=recommended, useposix=true, d_sigaction=define
     useithreads=undef, usemultiplicity=undef
     useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
     use64bitint=undef, use64bitall=undef, uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
   Compiler:
     cc='cc', ccflags ='-DDEBUGGING -fno-strict-aliasing -pipe 
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
-I/usr/include/gdbm',
     optimize='-O2 -g',
     cppflags='-DDEBUGGING -fno-strict-aliasing -pipe 
-I/usr/local/include -I/usr/include/gdbm'
     ccversion='', gccversion='4.1.1 20060525 (Red Hat 4.1.1-1)', 
gccosandvers=''
     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
     alignbytes=4, prototype=define
   Linker and Libraries:
     ld='cc', ldflags =' -L/usr/local/lib'
     libpth=/usr/local/lib /lib /usr/lib
     libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
     perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
     libc=/lib/libc-2.4.so, so=so, useshrplib=false, libperl=libperl.a
     gnulibc_version='2.4'
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
     cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib'


Characteristics of this binary (from libperl):
   Compile-time options: DEBUGGING PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                         USE_LARGE_FILES USE_PERLIO
   Built under linux
   Compiled at Dec 26 2007 19:03:58
   @INC:
     /usr/local/lib/perl5/5.10.0/i686-linux
     /usr/local/lib/perl5/5.10.0
     /usr/local/lib/perl5/site_perl/5.10.0/i686-linux
     /usr/local/lib/perl5/site_perl/5.10.0
     /usr/local/lib/perl5/site_perl/5.8.8
     /usr/local/lib/perl5/site_perl
     .
-- 
Peter Scott
Pacific Systems Design Technologies





nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About