Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.85k stars 527 forks source link

Core dump on running perl in debug mode #871

Closed p5pRT closed 20 years ago

p5pRT commented 24 years ago

Migrated from rt.perl.org#1802 (status was 'resolved')

Searchable as RT1802$

p5pRT commented 24 years ago

From easmith@beatrice.rutgers.edu

Hi. The following program leads to a core dump.

#!/usr/sbin/perl -w

undef($/);

%functions = ();

foreach $file (@​ARGV) {   (open(FILE\, $file)) || (die "Can't open $file for reading​: $!; stopped");

  my($input) = \;

  $^D = 14 + 512;

  while ($input =~ m/^([_a-zA-Z]+[^\n\(]*)   (\(.*\)(?!\s*\;)[^\{]*\{.*?\}(?=.*?(?​:^[_a-zA-Z]+)|\Z))/mgx) {   $^D = 0;   my($what) = $1;   my($found) = $1 . $2;   my($output) = $file . "​:\n\t" . $found;   if (exists($functions{$what})) {   $functions{$what} .= "\n" . $output;   } else {   $functions{$what} = $output;   }   }   $^D = 0;

  close(FILE); }

print join("\n\n"\, map {$functions{$_}} (sort (keys %functions))) . "\n";

The stack trace is as follows​:

Core from signal SIGSEGV​: Segmentation violation

regmatch(\) ["regexec.c"​:790\, 0x100c1110] regtry(\) ["regexec.c"​:734\, 0x100c0dd4] Perl_regexec_flags(\) ["regexec.c"​:332\, 0x100bf7f4] Perl_pp_match(\) ["pp_hot.c"​:922\, 0x1002b2b8] Perl_runops_debug(\) ["run.c"​:66\, 0x100be17c] perl_run(\) ["perl.c"​:1088\, 0x10084320] main(\) ["perlmain.c"​:45\, 0x10013728] __start(\) ["crt1text.s"​:166\, 0x10013648]

The debug mode output was as follows​:

(/server/people/staff/easmith/perl/prog/extract.funcs.pl​:12) LEAVE scope 5 at mg.c​:152   => SV_YES PVMG(526)
(/server/people/staff/easmith/perl/prog/extract.funcs.pl​:12) nextstate   => SV_YES
(/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) enterloop (/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) ENTER scope 5 at pp_ctl.c​:1439 (/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) ENTER scope 6 at pp_ctl.c​:1441 Entering block 2\, type LOOP   => SV_YES
(/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) padsv   => SV_YES PV("#include "phylip.h" #include "drawgraphics.h"

/* Version 3.52c. Copyright (c) 1986-1993 by Joseph Felsenstein and   Christoph")
(/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) match Matching `^([_a-zA-Z]+[^\n\(]*)   (\(.*\)(?!\s*;)[^\{]*\{.*?\}(?=.*?(?...' against `#include "phylip.h" #include "drawgraphics.h"

/* Version 3....'   Setting an EVAL scope\, savestack=19 Segmentation fault (core dumped)

  Thanks\,

  -Allen

Perl Info ``` This perlbug was built using Perl 5.00502 - Thu Nov 5 21:33:33 EST 1998 It is being executed now by Perl 5.00502 - Fri Nov 6 00:06:17 EST 1998. Site configuration information for perl 5.00502: Configured by easmith at Fri Nov 6 00:06:17 EST 1998. Summary of my perl5 (5.0 patchlevel 5 subversion 2) configuration: Platform: osname=irix, osvers=6.2, archname=IP22-irix uname='irix titania1 6.2 03131015 ip22 ' hint=previous, useposix=true, d_sigaction=define usethreads=undef useperlio=undef d_sfio=undef Compiler: cc='cc -n32 -mips4', optimize='-TARG:processor=r5000 -O3 -OPT:fast_sqrt=OFF:Olimit=0 -TENV:X=0 -OPT:fast_io=ON -LNO:opt=1:ou_further=3 -OPT:fold_unsafe_relops=OFF:div_split=OFF:IEEE_arithmetic=1:roundoff=0 -LNO:vintr=OFF -OPT:got_call_conversion=OFF -INLINE:=ON -TARG:platform=ip22_5k', gccversion= cppflags='-D_BSD_TYPES -D_BSD_TIME -DLANGUAGE_C -I/server/people/staff/easmith/include -DDEBUGGING' ccflags ='-D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -DLANGUAGE_C -I/server/people/staff/easmith/include -DDEBUGGING' stdchar='unsigned char', d_stdstdio=define, usevfork=false intsize=4, longsize=4, ptrsize=4, doublesize=8 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 alignbytes=8, usemymalloc=y, prototype=define Linker and Libraries: ld='ld -mips4 -n32 -no_unresolved -shared -update_registry /usr/lib32/so_locations', ldflags ='-L/server/people/staff/easmith/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -rpath /server/people/staff/easmith/lib32:/usr/lib32/mips4:/usr/lib32:/lib32' libpth=/server/people/staff/easmith/lib32 /usr/lib32/mips4 /usr/lib32 /lib32 libs=-lgdbm -ldb -lm -lc libc=/usr/lib32/mips4/libc.so, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-L/server/people/staff/easmith/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -rpath /server/people/staff/easmith/lib32:/usr/lib32/mips4:/usr/lib32:/lib32' Locally applied patches: @INC for perl 5.00502: /usr/share/lib/perl5/5.005/IP22-irix /usr/share/lib/perl5/5.005 /usr/share/lib/perl5/site_perl/5.005/IP22-irix /usr/share/lib/perl5/site_perl/5.005 . Environment for perl 5.00502: HOME=/server/people/staff/easmith LANG=en_US LD_LIBRARY_PATH=/server/people/staff/easmith/lib LOGDIR (unset) PATH=/server/people/staff/easmith/compiled:/usr/share/bin:/server/people/staff/easmith:/server/people/staff/easmith/perl/prog:/usr/sbin:/usr/bsd:/sbin:/usr/bin:/bin:/usr/lib:/usr/bin/X11:/usr/etc:/etc:/usr/Cadmin/bin:/usr/demos/bin:/usr/gfx:/usr/lib/Zmail/bin:/usr/lib/print PERL_BADLANG (unset) SHELL=/bin/csh Complete configuration data for perl 5.00502: Author='' CONFIG='true' Date='$Date' Header='' Id='$Id' Locker='' Log='$Log' Mcc='Mcc' PATCHLEVEL='5' RCSfile='$RCSfile' Revision='$Revision' SUBVERSION='2' Source='' State='' _a='.a' _exe='' _o='.o' afs='false' alignbytes='8' ansi2knr='' aphostname='' apiversion='5.005' ar='ar' archlib='/usr/share/lib/perl5/5.005/IP22-irix' archlibexp='/usr/share/lib/perl5/5.005/IP22-irix' archname='IP22-irix' archobjs='' awk='awk' baserev='5.0' bash='' bin='/usr/sbin' binexp='/usr/sbin' bison='' byacc='byacc' byteorder='4321' c='\c' castflags='0' cat='cat' cc='cc -n32 -mips4' cccdlflags=' ' ccdlflags=' ' ccflags='-D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -DLANGUAGE_C -I/server/people/staff/easmith/include -DDEBUGGING' cf_by='easmith' cf_email='easmith@beatrice.rutgers.edu' cf_time='Fri Nov 6 00:06:17 EST 1998' chgrp='' chmod='' chown='' clocktype='clock_t' comm='comm' compress='' config_arg0='./Configure' config_arg1='-d' config_argc='1' config_args='-d' contains='grep' cp='cp' cpio='' cpp='cpp' cpp_stuff='42' cppflags='-D_BSD_TYPES -D_BSD_TIME -DLANGUAGE_C -I/server/people/staff/easmith/include -DDEBUGGING' cpplast='' cppminus='' cpprun='/usr/lib/cpp' cppstdin='cppstdin' cryptlib='' csh='csh' d_Gconvert='gcvt((x),(n),(b))' d_access='define' d_alarm='define' d_archlib='define' d_attribut='' d_bcmp='define' d_bcopy='define' d_bsd='define' d_bsdgetpgrp='' d_bsdsetpgrp='' d_bzero='define' d_casti32='define' d_castneg='define' d_charvspr='' d_chown='define' d_chroot='define' d_chsize='' d_closedir='define' d_const='define' d_crypt='define' d_csh='define' d_cuserid='define' d_dbl_dig='define' d_difftime='define' d_dirnamlen='' d_dlerror='define' d_dlopen='define' d_dlsymun='' d_dosuid='' d_dup2='define' d_endgrent='define' d_endhent='define' d_endnent='define' d_endpent='define' d_endpwent='define' d_endsent='define' d_eofnblk='define' d_eunice='' d_fchmod='define' d_fchown='define' d_fcntl='define' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' d_fgetpos='define' d_flexfnam='define' d_flock='define' d_fork='define' d_fpathconf='define' d_fsetpos='define' d_ftime='' d_getgrent='define' d_getgrps='define' d_gethbyaddr='define' d_gethbyname='define' d_gethent='define' d_gethname='' d_gethostprotos='define' d_getlogin='define' d_getnbyaddr='define' d_getnbyname='define' d_getnent='define' d_getnetprotos='define' d_getpbyname='define' d_getpbynumber='define' d_getpent='define' d_getpgid='define' d_getpgrp='define' d_getpgrp2='' d_getppid='define' d_getprior='define' d_getprotoprotos='define' d_getpwent='define' d_getsbyname='define' d_getsbyport='define' d_getsent='define' d_getservprotos='define' d_gettimeod='define' d_gnulibc='' d_grpasswd='define' d_htonl='define' d_index='' d_inetaton='define' d_isascii='define' d_killpg='define' d_lchown='define' d_link='define' d_locconv='define' d_lockf='define' d_longdbl='define' d_longlong='define' d_lstat='define' d_mblen='define' d_mbstowcs='define' d_mbtowc='define' d_memcmp='define' d_memcpy='define' d_memmove='define' d_memset='define' d_mkdir='define' d_mkfifo='define' d_mktime='define' d_msg='define' d_msgctl='define' d_msgget='define' d_msgrcv='define' d_msgsnd='define' d_mymalloc='define' d_nice='define' d_oldpthreads='' d_oldsock='' d_open3='define' d_pathconf='define' d_pause='define' d_phostname='' d_pipe='define' d_poll='define' d_portable='define' d_pthread_yield='' d_pthreads_created_joinable='' d_pwage='define' d_pwchange='' d_pwclass='' d_pwcomment='define' d_pwexpire='' d_pwgecos='define' d_pwpasswd='define' d_pwquota='' d_readdir='define' d_readlink='define' d_rename='define' d_rewinddir='define' d_rmdir='define' d_safebcpy='define' d_safemcpy='define' d_sanemcmp='define' d_sched_yield='' d_seekdir='define' d_select='define' d_sem='define' d_semctl='define' d_semctl_semid_ds='' d_semctl_semun='define' d_semget='define' d_semop='define' d_setegid='define' d_seteuid='define' d_setgrent='define' d_setgrps='define' d_sethent='define' d_setlinebuf='define' d_setlocale='define' d_setnent='define' d_setpent='define' d_setpgid='define' d_setpgrp='define' d_setpgrp2='' d_setprior='define' d_setpwent='define' d_setregid='define' d_setresgid='' d_setresuid='' d_setreuid='define' d_setrgid='define' d_setruid='define' d_setsent='define' d_setsid='define' d_setvbuf='define' d_sfio='' d_shm='define' d_shmat='define' d_shmatprototype='define' d_shmctl='define' d_shmdt='define' d_shmget='define' d_sigaction='define' d_sigsetjmp='define' d_socket='define' d_sockpair='define' d_statblks='define' d_stdio_cnt_lval='define' d_stdio_ptr_lval='define' d_stdiobase='define' d_stdstdio='define' d_strchr='define' d_strcoll='define' d_strctcpy='define' d_strerrm='strerror(e)' d_strerror='define' d_strtod='define' d_strtol='define' d_strtoul='define' d_strxfrm='define' d_suidsafe='' d_symlink='define' d_syscall='define' d_sysconf='define' d_sysernlst='' d_syserrlst='define' d_system='define' d_tcgetpgrp='define' d_tcsetpgrp='define' d_telldir='define' d_time='define' d_times='define' d_truncate='define' d_tzname='define' d_umask='define' d_uname='define' d_union_semun='define' d_vfork='' d_void_closedir='' d_voidsig='define' d_voidtty='' d_volatile='define' d_vprintf='define' d_wait4='' d_waitpid='define' d_wcstombs='define' d_wctomb='define' d_xenix='' date='date' db_hashtype='int' db_prefixtype='int' defvoidused='15' direntrytype='struct dirent' dlext='so' dlsrc='dl_dlopen.xs' doublesize='8' dynamic_ext='B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File Opcode POSIX SDBM_File Socket attrs re' eagain='EAGAIN' ebcdic='' echo='echo' egrep='egrep' emacs='' eunicefix=':' exe_ext='' expr='expr' extensions='B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File Opcode POSIX SDBM_File Socket attrs re Errno' find='find' firstmakefile='makefile' flex='' fpostype='fpos_t' freetype='void' full_csh='/sbin/csh' full_sed='/sbin/sed' gccversion='' gidtype='gid_t' glibpth='/usr/shlib /shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/ucblib /usr/local/lib ' grep='grep' groupcat='cat /etc/group' groupstype='gid_t' gzip='gzip' h_fcntl='false' h_sysfile='true' hint='previous' hostcat='cat /etc/hosts' huge='' i_arpainet='define' i_bsdioctl='' i_db='define' i_dbm='define' i_dirent='define' i_dld='' i_dlfcn='define' i_fcntl='' i_float='define' i_gdbm='' i_grp='define' i_limits='define' i_locale='define' i_malloc='define' i_math='define' i_memory='' i_ndbm='define' i_netdb='define' i_neterrno='' i_niin='define' i_pwd='define' i_rpcsvcdbm='' i_sfio='' i_sgtty='' i_stdarg='define' i_stddef='define' i_stdlib='define' i_string='define' i_sysdir='define' i_sysfile='define' i_sysfilio='define' i_sysin='' i_sysioctl='define' i_sysndir='' i_sysparam='define' i_sysresrc='define' i_sysselct='define' i_syssockio='' i_sysstat='define' i_systime='define' i_systimek='' i_systimes='define' i_systypes='define' i_sysun='define' i_syswait='define' i_termio='' i_termios='define' i_time='' i_unistd='define' i_utime='define' i_values='define' i_varargs='' i_varhdr='stdarg.h' i_vfork='' incpath='' inews='' installarchlib='/usr/share/lib/perl5/5.005/IP22-irix' installbin='/usr/sbin' installman1dir='/usr/share/man/man1' installman3dir='/usr/share/man/man3' installprivlib='/usr/share/lib/perl5/5.005' installscript='/usr/sbin' installsitearch='/usr/share/lib/perl5/site_perl/5.005/IP22-irix' installsitelib='/usr/share/lib/perl5/site_perl/5.005' intsize='4' known_extensions='B DB_File Data/Dumper Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re' ksh='' large='' ld='ld -mips4 -n32 -no_unresolved -shared -update_registry /usr/lib32/so_locations' lddlflags='-L/server/people/staff/easmith/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -rpath /server/people/staff/easmith/lib32:/usr/lib32/mips4:/usr/lib32:/lib32' ldflags='-L/server/people/staff/easmith/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -rpath /server/people/staff/easmith/lib32:/usr/lib32/mips4:/usr/lib32:/lib32' less='less' lib_ext='.a' libc='/usr/lib32/mips4/libc.so' libperl='libperl.a' libpth='/server/people/staff/easmith/lib32 /usr/lib32/mips4 /usr/lib32 /lib32' libs='-lgdbm -ldb -lm -lc' libswanted='sfio inet nm ndbm gdbm dbm db dld ld m c cposix posix ndir dir ucb BSD x' line='line' lint='' lkflags='' ln='ln' lns='/sbin/ln -s' locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include' loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib' longdblsize='16' longlongsize='8' longsize='4' lp='' lpr='' ls='ls' lseektype='off_t' mail='' mailx='' make='make' make_set_make='#' mallocobj='malloc.o' mallocsrc='malloc.c' malloctype='void *' man1dir='/usr/share/man/man1' man1direxp='/usr/share/man/man1' man1ext='1' man3dir='/usr/share/man/man3' man3direxp='/usr/share/man/man3' man3ext='3' medium='' mips='' mips_type='System V' mkdir='mkdir' models='none' modetype='mode_t' more='more' mv='' myarchname='IP22-irix' mydomain='.rutgers.edu' myhostname='titania1' myuname='irix titania1 6.2 03131015 ip22 ' n='' netdb_hlen_type='int' netdb_host_type='const void *' netdb_name_type='const char *' netdb_net_type='long' nm='nm' nm_opt='-p' nm_so_opt='-p' nonxs_ext='Errno' nroff='nroff' o_nonblock='O_NONBLOCK' obj_ext='.o' optimize='-TARG:processor=r5000 -O3 -OPT:fast_sqrt=OFF:Olimit=0 -TENV:X=0 -OPT:fast_io=ON -LNO:opt=1:ou_further=3 -OPT:fold_unsafe_relops=OFF:div_split=OFF:IEEE_arithmetic=1:roundoff=0 -LNO:vintr=OFF -OPT:got_call_conversion=OFF -INLINE:=ON -TARG:platform=ip22_5k' orderlib='false' osname='irix' osvers='6.2' package='perl5' pager='/server/people/staff/easmith/compiled/less' passcat='cat /etc/passwd' patchlevel='5' path_sep=':' perl='perl' perladmin='easmith@beatrice.rutgers.edu' perlpath='/usr/sbin/perl' pg='pg' phostname='hostname' pidtype='pid_t' plibpth='/usr/lib32 /lib32 /usr/ccs/lib' pmake='' pp_ctl_cflags='optimize=-O' pr='' prefix='/usr/share' prefixexp='/usr/share' privlib='/usr/share/lib/perl5/5.005' privlibexp='/usr/share/lib/perl5/5.005' prototype='define' ptrsize='4' randbits='15' ranlib=':' rd_nodata='-1' rm='rm' rmail='' runnm='true' scriptdir='/usr/sbin' scriptdirexp='/usr/sbin' sed='sed' selecttype='fd_set *' sendmail='sendmail' sh='/bin/sh' shar='' sharpbang='#!' shmattype='void *' shortsize='2' shrpenv='' shsharp='true' sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ 32 CKPT RESTART NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 PTINTR PTRESCHED RTMIN NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL ' sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "32", "CKPT", "RESTART", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "PTINTR", "PTRESCHED", "RTMIN", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", 0' sig_num='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 18, 22, 0' signal_t='void' sitearch='/usr/share/lib/perl5/site_perl/5.005/IP22-irix' sitearchexp='/usr/share/lib/perl5/site_perl/5.005/IP22-irix' sitelib='/usr/share/lib/perl5/site_perl/5.005' sitelibexp='/usr/share/lib/perl5/site_perl/5.005' sizetype='size_t' sleep='' smail='' small='' so='so' sockethdr='' socketlib='' sort='sort' spackage='Perl5' spitshell='cat' split='' src='.' ssizetype='ssize_t' startperl='#!/usr/sbin/perl' startsh='#!/bin/sh' static_ext=' ' stdchar='unsigned char' stdio_base='((fp)->_base)' stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)' stdio_cnt='((fp)->_cnt)' stdio_filbuf='' stdio_ptr='((fp)->_ptr)' strings='/usr/include/string.h' submit='' subversion='2' sysman='/usr/share/man/man1' tail='' tar='' tbl='' tee='tee' test='test' timeincl='/usr/include/sys/time.h ' timetype='time_t' touch='touch' tr='tr' trnl='\n' troff='' uidtype='uid_t' uname='uname' uniq='uniq' usedl='define' usemymalloc='y' usenm='true' useopcode='true' useperlio='' useposix='true' usesfio='false' useshrplib='false' usethreads='' usevfork='false' usrinc='/usr/include' uuname='' version='5.00502' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' zcat='' zip='zip' ```
p5pRT commented 24 years ago

From [Unknown Contact. See original ticket]

Created by easmith@beatrice.rutgers.edu

Hi. The following program leads to a core dump.

#!/usr/sbin/perl -w

undef($/);

%functions = ();

foreach $file (@​ARGV) {   (open(FILE\, $file)) || (die "Can't open $file for reading​: $!; stopped");

  my($input) = ;

  $^D = 14 + 512;

  while ($input =~ m/^([_a-zA-Z]+[^\n\(]*)   (\(.*\)(?!\s*\;)[^\{]*\{.*?\}(?=.*?(?​:^[_a-zA-Z]+)|\Z))/mgx) {   $^D = 0;   my($what) = $1;   my($found) = $1 . $2;   my($output) = $file . "​:\n\t" . $found;   if (exists($functions{$what})) {   $functions{$what} .= "\n" . $output;   } else {   $functions{$what} = $output;   }   }   $^D = 0;

  close(FILE); }

print join("\n\n"\, map {$functions{$_}} (sort (keys %functions))) . "\n";

The stack trace is as follows​:

Core from signal SIGSEGV​: Segmentation violation

regmatch() ["regexec.c"​:790\, 0x100c1110] regtry() ["regexec.c"​:734\, 0x100c0dd4] Perl_regexec_flags() ["regexec.c"​:332\, 0x100bf7f4] Perl_pp_match() ["pp_hot.c"​:922\, 0x1002b2b8] Perl_runops_debug() ["run.c"​:66\, 0x100be17c] perl_run() ["perl.c"​:1088\, 0x10084320] main() ["perlmain.c"​:45\, 0x10013728] __start() ["crt1text.s"​:166\, 0x10013648]

The debug mode output was as follows​:

(/server/people/staff/easmith/perl/prog/extract.funcs.pl​:12) LEAVE scope 5 at mg.c​:152   => SV_YES PVMG(526) (/server/people/staff/easmith/perl/prog/extract.funcs.pl​:12) nextstate   => SV_YES (/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) enterloop (/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) ENTER scope 5 at pp_ctl.c​:1439 (/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) ENTER scope 6 at pp_ctl.c​:1441 Entering block 2\, type LOOP   => SV_YES (/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) padsv   => SV_YES PV("#include "phylip.h" #include "drawgraphics.h"

/* Version 3.52c. Copyright (c) 1986-1993 by Joseph Felsenstein and   Christoph") (/server/people/staff/easmith/perl/prog/extract.funcs.pl​:14) match Matching `^([_a-zA-Z]+[^\n\(]*)   (\(.*\)(?!\s*;)[^\{]*\{.*?\}(?=.*?(?...' against `#include "phylip.h" #include "drawgraphics.h"

/* Version 3....'   Setting an EVAL scope\, savestack=19 Segmentation fault (core dumped)

  Thanks\,

  -Allen

Perl Info ``` This perlbug was built using Perl 5.00502 - Thu Nov 5 21:33:33 EST 1998 It is being executed now by Perl 5.00502 - Fri Nov 6 00:06:17 EST 1998. Site configuration information for perl 5.00502: Configured by easmith at Fri Nov 6 00:06:17 EST 1998. Summary of my perl5 (5.0 patchlevel 5 subversion 2) configuration: Platform: osname=irix, osvers=6.2, archname=IP22-irix uname='irix titania1 6.2 03131015 ip22 ' hint=previous, useposix=true, d_sigaction=define usethreads=undef useperlio=undef d_sfio=undef Compiler: cc='cc -n32 -mips4', optimize='-TARG:processor=r5000 -O3 -OPT:fast_sqrt=OFF:Olimit=0 -TENV:X=0 -OPT:fast_io=ON -LNO:opt=1:ou_further=3 -OPT:fold_unsaf e_relops=OFF:div_split=OFF:IEEE_arithmetic=1:roundoff=0 -LNO:vintr=OFF -OPT:got_call_conversion=OFF -INLINE:=ON -TARG:platform=ip22_5k', gccversion= cppflags='-D_BSD_TYPES -D_BSD_TIME -DLANGUAGE_C -I/server/people/staff/easmith/include -DDEBUGGING' ccflags ='-D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -DLANGUAGE_C -I/server/people/staff/easmith/include -DDEBUGGING' stdchar='unsigned char', d_stdstdio=define, usevfork=false intsize=4, longsize=4, ptrsize=4, doublesize=8 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 alignbytes=8, usemymalloc=y, prototype=define Linker and Libraries: ld='ld -mips4 -n32 -no_unresolved -shared -update_registry /usr/lib32/so_locations', ldflags ='-L/server/people/staff/easmith/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -rpath /server/people/staff/easmith/lib32:/usr/lib32/mips4:/usr/lib32:/lib32' libpth=/server/people/staff/easmith/lib32 /usr/lib32/mips4 /usr/lib32 /lib32 libs=-lgdbm -ldb -lm -lc libc=/usr/lib32/mips4/libc.so, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-L/server/people/staff/easmith/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -rpath /server/people/staff/easmith/lib32:/us r/lib32/mips4:/usr/lib32:/lib32' Locally applied patches: @INC for perl 5.00502: /usr/share/lib/perl5/5.005/IP22-irix /usr/share/lib/perl5/5.005 /usr/share/lib/perl5/site_perl/5.005/IP22-irix /usr/share/lib/perl5/site_perl/5.005 . Environment for perl 5.00502: HOME=/server/people/staff/easmith LANG=en_US LD_LIBRARY_PATH=/server/people/staff/easmith/lib LOGDIR (unset) PATH=/server/people/staff/easmith/compiled:/usr/share/bin:/server/people/staff/easmith:/server/people/staff/easmith/perl/prog:/usr/sbin:/usr/bsd:/sbin :/usr/bin:/bin:/usr/lib:/usr/bin/X11:/usr/etc:/etc:/usr/Cadmin/bin:/usr/demos/bin:/usr/gfx:/usr/lib/Zmail/bin:/usr/lib/print PERL_BADLANG (unset) SHELL=/bin/csh Complete configuration data for perl 5.00502: Author='' CONFIG='true' Date='$Date' Header='' Id='$Id' Locker='' Log='$Log' Mcc='Mcc' PATCHLEVEL='5' RCSfile='$RCSfile' Revision='$Revision' SUBVERSION='2' Source='' State='' _a='.a' _exe='' _o='.o' afs='false' alignbytes='8' ansi2knr='' aphostname='' apiversion='5.005' ar='ar' archlib='/usr/share/lib/perl5/5.005/IP22-irix' archlibexp='/usr/share/lib/perl5/5.005/IP22-irix' archname='IP22-irix' archobjs='' awk='awk' baserev='5.0' bash='' bin='/usr/sbin' binexp='/usr/sbin' bison='' byacc='byacc' byteorder='4321' c='\c' castflags='0' cat='cat' cc='cc -n32 -mips4' cccdlflags=' ' ccdlflags=' ' ccflags='-D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -DLANGUAGE_C -I/server/people/staff/easmith/include -DDEBUGGING' cf_by='easmith' cf_email='easmith@beatrice.rutgers.edu' cf_time='Fri Nov 6 00:06:17 EST 1998' chgrp='' chmod='' chown='' clocktype='clock_t' comm='comm' compress='' config_arg0='./Configure' config_arg1='-d' config_argc='1' config_args='-d' contains='grep' cp='cp' cpio='' cpp='cpp' cpp_stuff='42' cppflags='-D_BSD_TYPES -D_BSD_TIME -DLANGUAGE_C -I/server/people/staff/easmith/include -DDEBUGGING' cpplast='' cppminus='' cpprun='/usr/lib/cpp' cppstdin='cppstdin' cryptlib='' csh='csh' d_Gconvert='gcvt((x),(n),(b))' d_access='define' d_alarm='define' d_archlib='define' d_attribut='' d_bcmp='define' d_bcopy='define' d_bsd='define' d_bsdgetpgrp='' d_bsdsetpgrp='' d_bzero='define' d_casti32='define' d_castneg='define' d_charvspr='' d_chown='define' d_chroot='define' d_chsize='' d_closedir='define' d_const='define' d_crypt='define' d_csh='define' d_cuserid='define' d_dbl_dig='define' d_difftime='define' d_dirnamlen='' d_dlerror='define' d_dlopen='define' d_dlsymun='' d_dosuid='' d_dup2='define' d_endgrent='define' d_endhent='define' d_endnent='define' d_endpent='define' d_endpwent='define' d_endsent='define' d_eofnblk='define' d_eunice='' d_fchmod='define' d_fchown='define' d_fcntl='define' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' d_fgetpos='define' d_flexfnam='define' d_flock='define' d_fork='define' d_fpathconf='define' d_fsetpos='define' d_ftime='' d_getgrent='define' d_getgrps='define' d_gethbyaddr='define' d_gethbyname='define' d_gethent='define' d_gethname='' d_gethostprotos='define' d_getlogin='define' d_getnbyaddr='define' d_getnbyname='define' d_getnent='define' d_getnetprotos='define' d_getpbyname='define' d_getpbynumber='define' d_getpent='define' d_getpgid='define' d_getpgrp='define' d_getpgrp2='' d_getppid='define' d_getprior='define' d_getprotoprotos='define' d_getpwent='define' d_getsbyname='define' d_getsbyport='define' d_getsent='define' d_getservprotos='define' d_gettimeod='define' d_gnulibc='' d_grpasswd='define' d_htonl='define' d_index='' d_inetaton='define' d_isascii='define' d_killpg='define' d_lchown='define' d_link='define' d_locconv='define' d_lockf='define' d_longdbl='define' d_longlong='define' d_lstat='define' d_mblen='define' d_mbstowcs='define' d_mbtowc='define' d_memcmp='define' d_memcpy='define' d_memmove='define' d_memset='define' d_mkdir='define' d_mkfifo='define' d_mktime='define' d_msg='define' d_msgctl='define' d_msgget='define' d_msgrcv='define' d_msgsnd='define' d_mymalloc='define' d_nice='define' d_oldpthreads='' d_oldsock='' d_open3='define' d_pathconf='define' d_pause='define' d_phostname='' d_pipe='define' d_poll='define' d_portable='define' d_pthread_yield='' d_pthreads_created_joinable='' d_pwage='define' d_pwchange='' d_pwclass='' d_pwcomment='define' d_pwexpire='' d_pwgecos='define' d_pwpasswd='define' d_pwquota='' d_readdir='define' d_readlink='define' d_rename='define' d_rewinddir='define' d_rmdir='define' d_safebcpy='define' d_safemcpy='define' d_sanemcmp='define' d_sched_yield='' d_seekdir='define' d_select='define' d_sem='define' d_semctl='define' d_semctl_semid_ds='' d_semctl_semun='define' d_semget='define' d_semop='define' d_setegid='define' d_seteuid='define' d_setgrent='define' d_setgrps='define' d_sethent='define' d_setlinebuf='define' d_setlocale='define' d_setnent='define' d_setpent='define' d_setpgid='define' d_setpgrp='define' d_setpgrp2='' d_setprior='define' d_setpwent='define' d_setregid='define' d_setresgid='' d_setresuid='' d_setreuid='define' d_setrgid='define' d_setruid='define' d_setsent='define' d_setsid='define' d_setvbuf='define' d_sfio='' d_shm='define' d_shmat='define' d_shmatprototype='define' d_shmctl='define' d_shmdt='define' d_shmget='define' d_sigaction='define' d_sigsetjmp='define' d_socket='define' d_sockpair='define' d_statblks='define' d_stdio_cnt_lval='define' d_stdio_ptr_lval='define' d_stdiobase='define' d_stdstdio='define' d_strchr='define' d_strcoll='define' d_strctcpy='define' d_strerrm='strerror(e)' d_strerror='define' d_strtod='define' d_strtol='define' d_strtoul='define' d_strxfrm='define' d_suidsafe='' d_symlink='define' d_syscall='define' d_sysconf='define' d_sysernlst='' d_syserrlst='define' d_system='define' d_tcgetpgrp='define' d_tcsetpgrp='define' d_telldir='define' d_time='define' d_times='define' d_truncate='define' d_tzname='define' d_umask='define' d_uname='define' d_union_semun='define' d_vfork='' d_void_closedir='' d_voidsig='define' d_voidtty='' d_volatile='define' d_vprintf='define' d_wait4='' d_waitpid='define' d_wcstombs='define' d_wctomb='define' d_xenix='' date='date' db_hashtype='int' db_prefixtype='int' defvoidused='15' direntrytype='struct dirent' dlext='so' dlsrc='dl_dlopen.xs' doublesize='8' dynamic_ext='B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File Opcode POSIX SDBM_File Socket attrs re' eagain='EAGAIN' ebcdic='' echo='echo' egrep='egrep' emacs='' eunicefix=':' exe_ext='' expr='expr' extensions='B DB_File Data/Dumper Fcntl IO IPC/SysV NDBM_File Opcode POSIX SDBM_File Socket attrs re Errno' find='find' firstmakefile='makefile' flex='' fpostype='fpos_t' freetype='void' full_csh='/sbin/csh' full_sed='/sbin/sed' gccversion='' gidtype='gid_t' glibpth='/usr/shlib /shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/ucblib /u sr/local/lib ' grep='grep' groupcat='cat /etc/group' groupstype='gid_t' gzip='gzip' h_fcntl='false' h_sysfile='true' hint='previous' hostcat='cat /etc/hosts' huge='' i_arpainet='define' i_bsdioctl='' i_db='define' i_dbm='define' i_dirent='define' i_dld='' i_dlfcn='define' i_fcntl='' i_float='define' i_gdbm='' i_grp='define' i_limits='define' i_locale='define' i_malloc='define' i_math='define' i_memory='' i_ndbm='define' i_netdb='define' i_neterrno='' i_niin='define' i_pwd='define' i_rpcsvcdbm='' i_sfio='' i_sgtty='' i_stdarg='define' i_stddef='define' i_stdlib='define' i_string='define' i_sysdir='define' i_sysfile='define' i_sysfilio='define' i_sysin='' i_sysioctl='define' i_sysndir='' i_sysparam='define' i_sysresrc='define' i_sysselct='define' i_syssockio='' i_sysstat='define' i_systime='define' i_systimek='' i_systimes='define' i_systypes='define' i_sysun='define' i_syswait='define' i_termio='' i_termios='define' i_time='' i_unistd='define' i_utime='define' i_values='define' i_varargs='' i_varhdr='stdarg.h' i_vfork='' incpath='' inews='' installarchlib='/usr/share/lib/perl5/5.005/IP22-irix' installbin='/usr/sbin' installman1dir='/usr/share/man/man1' installman3dir='/usr/share/man/man3' installprivlib='/usr/share/lib/perl5/5.005' installscript='/usr/sbin' installsitearch='/usr/share/lib/perl5/site_perl/5.005/IP22-irix' installsitelib='/usr/share/lib/perl5/site_perl/5.005' intsize='4' known_extensions='B DB_File Data/Dumper Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re' ksh='' large='' ld='ld -mips4 -n32 -no_unresolved -shared -update_registry /usr/lib32/so_locations' lddlflags='-L/server/people/staff/easmith/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -rpath /server/people/staff/easmith/lib32:/usr/lib32/mips4:/usr/l ib32:/lib32' ldflags='-L/server/people/staff/easmith/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -rpath /server/people/staff/easmith/lib32:/usr/lib32/mips4:/usr/lib 32:/lib32' less='less' lib_ext='.a' libc='/usr/lib32/mips4/libc.so' libperl='libperl.a' libpth='/server/people/staff/easmith/lib32 /usr/lib32/mips4 /usr/lib32 /lib32' libs='-lgdbm -ldb -lm -lc' libswanted='sfio inet nm ndbm gdbm dbm db dld ld m c cposix posix ndir dir ucb BSD x' line='line' lint='' lkflags='' ln='ln' lns='/sbin/ln -s' locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include' loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib' longdblsize='16' longlongsize='8' longsize='4' lp='' lpr='' ls='ls' lseektype='off_t' mail='' mailx='' make='make' make_set_make='#' mallocobj='malloc.o' mallocsrc='malloc.c' malloctype='void *' man1dir='/usr/share/man/man1' man1direxp='/usr/share/man/man1' man1ext='1' man3dir='/usr/share/man/man3' man3direxp='/usr/share/man/man3' man3ext='3' medium='' mips='' mips_type='System V' mkdir='mkdir' models='none' modetype='mode_t' more='more' mv='' myarchname='IP22-irix' mydomain='.rutgers.edu' myhostname='titania1' myuname='irix titania1 6.2 03131015 ip22 ' n='' netdb_hlen_type='int' netdb_host_type='const void *' netdb_name_type='const char *' netdb_net_type='long' nm='nm' nm_opt='-p' nm_so_opt='-p' nonxs_ext='Errno' nroff='nroff' o_nonblock='O_NONBLOCK' obj_ext='.o' optimize='-TARG:processor=r5000 -O3 -OPT:fast_sqrt=OFF:Olimit=0 -TENV:X=0 -OPT:fast_io=ON -LNO:opt=1:ou_further=3 -OPT:fold_unsafe_relops=OFF:div_split=OF F:IEEE_arithmetic=1:roundoff=0 -LNO:vintr=OFF -OPT:got_call_conversion=OFF -INLINE:=ON -TARG:platform=ip22_5k' orderlib='false' osname='irix' osvers='6.2' package='perl5' pager='/server/people/staff/easmith/compiled/less' passcat='cat /etc/passwd' patchlevel='5' path_sep=':' perl='perl' perladmin='easmith@beatrice.rutgers.edu' perlpath='/usr/sbin/perl' pg='pg' phostname='hostname' pidtype='pid_t' plibpth='/usr/lib32 /lib32 /usr/ccs/lib' pmake='' pp_ctl_cflags='optimize=-O' pr='' prefix='/usr/share' prefixexp='/usr/share' privlib='/usr/share/lib/perl5/5.005' privlibexp='/usr/share/lib/perl5/5.005' prototype='define' ptrsize='4' randbits='15' ranlib=':' rd_nodata='-1' rm='rm' rmail='' runnm='true' scriptdir='/usr/sbin' scriptdirexp='/usr/sbin' sed='sed' selecttype='fd_set *' sendmail='sendmail' sh='/bin/sh' shar='' sharpbang='#!' shmattype='void *' shortsize='2' shrpenv='' shsharp='true' sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XC PU XFSZ 32 CKPT RESTART NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 PTINTR PTRESCHED RTMIN NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL ' sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "C HLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "32", "CKPT", "RESTART", "NUM35", "NUM36", "N UM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "PTINTR", "PTRESCHED", "RTMIN", "NUM50", "NUM51", "NUM52", "NUM53" , "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", 0' sig_num='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 18, 22, 0' signal_t='void' sitearch='/usr/share/lib/perl5/site_perl/5.005/IP22-irix' sitearchexp='/usr/share/lib/perl5/site_perl/5.005/IP22-irix' sitelib='/usr/share/lib/perl5/site_perl/5.005' sitelibexp='/usr/share/lib/perl5/site_perl/5.005' sizetype='size_t' sleep='' smail='' small='' so='so' sockethdr='' socketlib='' sort='sort' spackage='Perl5' spitshell='cat' split='' src='.' ssizetype='ssize_t' startperl='#!/usr/sbin/perl' startsh='#!/bin/sh' static_ext=' ' stdchar='unsigned char' stdio_base='((fp)->_base)' stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)' stdio_cnt='((fp)->_cnt)' stdio_filbuf='' stdio_ptr='((fp)->_ptr)' strings='/usr/include/string.h' submit='' subversion='2' sysman='/usr/share/man/man1' tail='' tar='' tbl='' tee='tee' test='test' timeincl='/usr/include/sys/time.h ' timetype='time_t' touch='touch' tr='tr' trnl='\n' troff='' uidtype='uid_t' uname='uname' uniq='uniq' usedl='define' usemymalloc='y' usenm='true' useopcode='true' useperlio='' useposix='true' usesfio='false' useshrplib='false' usethreads='' usevfork='false' usrinc='/usr/include' uuname='' version='5.00502' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' zcat='' zip='zip' ```
p5pRT commented 24 years ago

From @vanstyn

In \199911182312\.SAA08627@​feste\.rutgers\.edu\, Ed Allen Smith writes​: :This is a bug report for perl from easmith@​beatrice.rutgers.edu\, :generated with the help of perlbug 1.26 running under perl 5.00502.

The latest stable version of perl is 5.005_03 - please try your program under that version.

:Hi. The following program leads to a core dump. : :#!/usr/sbin/perl -w : :undef($/); : :%functions = (); : :foreach $file (@​ARGV) { : (open(FILE\, $file)) || (die "Can't open $file for reading​: $!; stopped"); [snip]

I was unable to reproduce your problem with a 5.005_02 perl here\, when I tried throwing some random C source files at it. However I have no idea what the program is trying to do or what style of data it expects\, and there was no output from the program when I tried running it.

If your problem persists under 5.005_03\, please a) reduce the test case so that both code and data are as small as possible and b) provide the necessary data as well as the code in your bug report.

Thanks\,

Hugo van der Sanden

p5pRT commented 24 years ago

From [Unknown Contact. See original ticket]

At 10​:32 +0100 1999-11-19\, Hugo wrote​:

If your problem persists under 5.005_03\, please a) reduce the test case so that both code and data are as small as possible and b) provide the necessary data as well as the code in your bug report.

Sage advice. However\, the keys "complex regex"\, "data-dependent"\, and "core dump" index the phrase "stack overflow due to deep recursion in regex engine" for me. While your stack trace doesn't suggest that recursion's your problem\, you might try running the script against your data with an increased stack allocation to see if the problem goes away. Whatever the outcome\, please let us know.

-- Dominic Dunlop

p5pRT commented 24 years ago

From [Unknown Contact. See original ticket]

  Please unsubscribe