Front page | perl.perl5.porters |
Postings from April 2012
perl5db.pl failed on Fedora 16 when debug scripts which executesfork() calls
Thread Next
From:
Xibo Ning
Date:
April 9, 2012 03:09
Subject:
perl5db.pl failed on Fedora 16 when debug scripts which executesfork() calls
Message ID:
4F82B539.5030305@redhat.com
Hi,
On Fedora 16, although environment variable 'TERM' has value 'xterm',
xterm isn't installed. So, when debug scripts which will execute fork(),
perl5db.pl will fail and quit when it executes the following codes,
enters line 1493 ~ 1500, because function xterm_get_fork_TTY need xterm
program:
1487 if (not defined &get_fork_TTY)
1488 {
1489 if ( defined $remoteport ) {
1490
1491 *get_fork_TTY = \&socket_get_fork_TTY;
1492 }
1493 elsif (defined $ENV{TERM}
1494
1495 and $ENV{TERM} eq 'xterm'
1496 and defined $ENV{DISPLAY}
1497 )
1498 {
1499 *get_fork_TTY = \&xterm_get_fork_TTY;
1500 }
1501 elsif ( $^O eq 'os2' ) {
1502 *get_fork_TTY = \&os2_get_fork_TTY;
1503 }
1504 elsif ( $^O eq 'darwin'
1505 and defined $ENV{TERM_PROGRAM}
1506 and $ENV{TERM_PROGRAM}
1507 eq 'Apple_Terminal'
1508 )
1509 {
1510 *get_fork_TTY = \&macosx_get_fork_TTY;
1511 }
1512 } ## end if (not defined &get_fork_TTY...
I also think it's better for perl5db.pl to support linux current
terminal emulation applications, so I make a patch. I have test the
patch on gnome (ubuntu 10.04, Fedora 16), kde (opensuse 12), xfce
(xubuntu 10.04.2), and lxde (mint 12). The patch works well.
The patch makes perl5db.pl support gnome-terminal, konsole,
xfce4-terminal, terminal (xfce), lxterminal, and xterm in linux system.
So, xterm becomes one of the terminal emulation applications supported
in linux system, not the only one as before.
How to reproduce the problem? Rename xterm or move it to other
directory, then debug a script that will execute fork() function.
I put a test case and the patch in attachments. And perlbug collects
some information as follows, hope it's helpful.
[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
category=core
severity=medium
---
This perlbug was built using Perl 5.14.2 in the Fedora build system.
It is being executed now by Perl 5.14.2 - Thu Feb 23 10:37:48 UTC 2012.
Site configuration information for perl 5.14.2:
Configured by Red Hat, Inc. at Thu Feb 23 10:37:48 UTC 2012.
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=linux, osvers=2.6.32-220.4.1.el6.x86_64,
archname=x86_64-linux-thread-multi
uname='linux x86-05.phx2.fedoraproject.org
2.6.32-220.4.1.el6.x86_64 #1 smp thu jan 19 14:50:54 est 2012 x86_64
x86_64 x86_64 gnulinux '
config_args='-des -Doptimize=-O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic
-Dccdlflags=-Wl,--enable-new-dtags -DDEBUGGING=-g -Dversion=5.14.2
-Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red
Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local
-Dsitelib=/usr/local/share/perl5 -Dsitearch=/usr/local/lib64/perl5
-Dprivlib=/usr/share/perl5 -Dvendorlib=/usr/share/perl5/vendor_perl
-Darchlib=/usr/lib64/perl5 -Dvendorarch=/usr/lib64/perl5/vendor_perl
-Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64
/usr/lib64 -Duseshrplib -Dusethreads -Duseithreads
-Dusedtrace=/usr/bin/dtrace -Duselargefiles -Dd_semctl_semun -Di_db
-Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio
-Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly
-Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto
-Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto
-Ud_endservent_r_proto -Ud_setservent_r_proto -Dscriptdir=/usr/bin'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing
-pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.6.2 20111027 (Red Hat 4.6.2-1)',
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='gcc', ldflags =' -fstack-protector'
libpth=/usr/local/lib64 /lib64 /usr/lib64
libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread
-lc -lgdbm_compat
perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.14.90'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef,
ccdlflags='-Wl,--enable-new-dtags -Wl,-rpath,/usr/lib64/perl5/CORE'
cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic'
Locally applied patches:
---
@INC for perl 5.14.2:
/usr/local/lib64/perl5
/usr/local/share/perl5
/usr/lib64/perl5/vendor_perl
/usr/share/perl5/vendor_perl
/usr/lib64/perl5
/usr/share/perl5
.
---
Environment for perl 5.14.2:
HOME=/home/tsllst
LANG=en_US.UTF-8
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tsllst/.local/bin:/home/tsllst/bin
PERL_BADLANG (unset)
SHELL=/bin/bash
Thread Next
-
perl5db.pl failed on Fedora 16 when debug scripts which executesfork() calls
by Xibo Ning