perlã®é å¸ç©ã®ä¸ã«ããINSTALLã®"Building a debugging perl"ã»ã¯ã·ã§ã³ã«ããéãã-DDEBUGGING=ããã¬ã·ãæå®ããã°ããã
æå®ããå¤ã«ãã£ã¦ã
- "perl internal debugging code"ã¨ãããã°ã·ã³ãã«ã®ä¸¡æ¹ãæå¹ã«ãªã£ããã® (-DDEBUGGINGãããã¯-DDEBUGGING=both)
- ãããã°ã·ã³ãã«ãæå¹ã«ãªã£ããã® (-DDEBUGGING=-g)
ã¨ã§ããããperlãç°ãªãã
"perl internal debugging code"ãæå¹ã«ããã¨ã"much, much more slowly"ã«ãªãã¨INSTALLã«ã¯æ¸ããã¦ããã
Note that a perl built with -DDEBUGGING will be much bigger and will run
much, much more slowly than a standard perl.
ãã«ãæ¸ã¿ã®perlããã©ããªãããã°ãªãã·ã§ã³ã§ãã«ãããããã確èªããã«ã¯ãperl -Vãã¿ãã°ããã
$ perl -V Summary of my perl5 (revision 5 version 16 subversion 2) configuration: Platform: osname=linux, osvers=2.6.38-13-generic, archname=x86_64-linux uname='linux goa 2.6.38-13-generic #54~lucid1-ubuntu smp wed jan 4 13:00:37 utc 2012 x86_64 gnulinux ' ... 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' ... Characteristics of this binary (from libperl): Compile-time options: DEBUGGING HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP ... Built under linux ...
çç®ããã®ã¯ãCompiler:ãã®ãoptimizeãã¨ããCompile-time options:ãã®2ã¤ã
- perlbrew install --notest perl-5.16.2
- perlbrew install --notest perl-5.16.2 --as=perl-5.16.2-both -DEBUGGING=both
- perlbrew install --notest perl-5.16.2 --as=perl-5.16.2-g -DEBUGGING=-g
ã®3ã¤ã®perlã§ãããã¸ãã®å¤ãã©ããªã£ã¦ããã¯æ¬¡ã®éãã
Compiler: optimize | Compile-time options | |
---|---|---|
standard | -O2 | ãªã |
-g | -O2 -g | ãªã |
both | -O2 -g | DEBUGGING |
ã-O2ãããªãã¦-O0ãã¤ã¤ï¼ãã¨ããåãã¯ã
ã¨ãããã¨ããã¨æãã¾ãã
注æç¹ã¨ãã¦ã¯:
- Perl 5.8.9ã§ã¯
-DEBUGGING
ã¯-DDEBUGGING
ã®å¥åã¨ãã¦ä½¿ãã¾ããã5.8.8ã§ã¯-DEBUGGING
ã¯ä½¿ãã¾ããã-DDEBUGGING
ãæå®ãã¾ãããã - Perl 5.8.8ã§ã¯
-DDEBUGGING=-g
ãå¹ãã¾ãããæå®ãã¦ããããã°ã·ã³ãã«ãã¤ãã¾ããããããã°ã·ã³ãã«ãã¤ããã«ã¯ã-Doptimize='-O2 -g'
ãæå®ããã°ããã®ã§ãããoptimizeã«-gãå«ã¾ãã¦ããã¨DEBUGGINGã¾ã§æå¹ã«ãªã£ã¦ãã¾ãã¾ãããããããã°ã·ã³ãã«ã ãã¤ãããã®ã§ãããinstallæã®ãªãã·ã§ã³ã§ã¯ã©ããããããªãããã ã£ãã®ã§ãConfigureã«ããã(âã®ãããã¯CentOSã®perlããæåãã¾ãã)ãå½ã¦ã¦(perlbrewã®å ´åã¯ãpatchperlã«DEBUGGINGãæå¹ã«ããªãããã«ããããããå½ã¦ã¦)ãã«ãããããã«ãã¾ãããã- 5.8.9ãªã
-DDEBUGGING=-g
ãå¹ãã¾ãã
- 5.8.9ãªã
--- perl-5.8.7/Configure.orig 2005-08-28 18:48:03.000000000 -0400 +++ perl-5.8.7/Configure 2005-08-28 18:49:28.000000000 -0400 @@ -4707,9 +4707,6 @@ case "$gccversion" in 1*) dflt='-fpcc-struct-return' ;; esac - case "$optimize" in - *-g*) dflt="$dflt -DDEBUGGING";; - esac case "$gccversion" in 2*) if test -d /etc/conf/kconfig.d && $contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1