develooper Front page | perl.perl5.porters | Postings from March 2003

format changes go SEGV

Thread Next
From:
Nicholas Clark
Date:
March 2, 2003 03:14
Subject:
format changes go SEGV
Message ID:
20030302110637.GA319@Bagpuss.unfortu.net
This is just a heads up because I don't have time right now to investigate
this further. [I need to have a tutorial written before I start trying to
present it :-) ]

It looks like recent changes to the format code can cause SEGVs:

$ /usr/local/bin/perl5.9.0 -d:DProf compile -o /dev/null Encode/euc-jp.ucm Encode/jis0208.enc 
Reading euc-jp (euc-jp)
D encoded jis0208

$ dprofpp5.9.0 
Total Elapsed Time = 18.24748 Seconds
  User+System Time = 16.47268 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 117.   19.28 28.984  69204   0.0003 0.0004  main::enter
 28.9   4.767 13.160      1   4.7667 13.159  main::compile_ucm
 21.9   3.622  2.617  13980   0.0003 0.0002  main::encode_U
 19.3   3.189 13.894      1   3.1886 13.893  main::compile_enc
Segmentation fault (core dumped)


$ gdb /usr/local/bin/perl5.9.0 perl5.9.0.core 
GNU gdb 4.18 (FreeBSD)
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd"...
(no debugging symbols found)...
Core was generated by `perl5.9.0'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libm.so.2...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libc.so.4...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libcrypt.so.2...(no debugging symbols found)...
done.
Reading symbols from /usr/lib/libutil.so.3...(no debugging symbols found)...
done.
Reading symbols from /usr/libexec/ld-elf.so.1...(no debugging symbols found)...
done.
#0  0x80bd760 in Perl_pp_formline ()
(gdb) where
#0  0x80bd760 in Perl_pp_formline ()
#1  0x809e94b in Perl_runops_standard ()
#2  0x805fbe9 in S_run_body ()
#3  0x805fa1e in perl_run ()
#4  0x805ccd2 in main ()
#5  0x805cbc1 in _start ()


I've no idea what dprofpp is doing, but clearly it's doing something that's
not in a regression test.

I think I'm going to resort to sticking maint's DProf into 5.8.0 and using
that.

Nicholas Clark

Thread Next


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