Subject: | segfault under -d |
as requested, the report for something that's probably not a bug in
Sub::Exporter itself:
running any code that uses Catalyst::Test (which uses Sub::Exporter as
of recently) with the perl debugger fails at compile time:
Signal SEGV at
/home/rafl/projects/perl/scratch/manyperl/perl/thr.n.mul.n/5.8.9/lib/site_perl/5.8.9/Sub/Exporter.pm
line 424
Sub::Exporter::_expand_groups('Catalyst::Test',
'HASH(0x8ff7164)', 'ARRAY(0x919765c)', 'HASH(0x8847aec)') called at
/home/rafl/projects/perl/scratch/manyperl/perl/thr.n.mul.n/5.8.9/lib/site_perl/5.8.9/Sub/Exporter.pm
line 742
Sub::Exporter::__ANON__[/home/rafl/projects/perl/scratch/manyperl/perl/thr.n.mul.n/5.8.9/lib/site_perl/5.8.9/Sub/Exporter.pm:756]('Catalyst::Test',
'-all', 'HASH(0x9180130)') called at lib/Catalyst/Test.pm line 72
Catalyst::Test::import('Catalyst::Test', 'TestApp') called at
t/aggregate/live_engine_setup_basics.t line 10
main::BEGIN() called at lib/Catalyst/Test.pm line 10
eval {...} called at lib/Catalyst/Test.pm line 10
the backtrace of the above segfault looks like this:
#0 0x08079304 in Perl_get_db_sub ()
#1 0x0808fc37 in Perl_pp_entersub ()
#2 0x0808e6d0 in Perl_runops_standard ()
#3 0x08089fd6 in Perl_call_sv ()
#4 0x0808a35b in Perl_call_list ()
#5 0x08063477 in S_process_special_blocks ()
#6 0x0806e3cc in Perl_newATTRSUB ()
#7 0x0806d4f9 in Perl_utilize ()
#8 0x081181c0 in Perl_yyparse ()
#9 0x0808c444 in perl_parse ()
#10 0x08062922 in main ()
on debugging perls you get an assertion failure instead of a segfault:
Assertion ((((zzzz)->sv_flags & (0x00004000|0x00008000)) == 0x00008000)
&& (((svtype)((zzzz)->sv_flags & 0xff)) == SVt_PVGV ||
((svtype)((zzzz)->sv_flags & 0xff)) == SVt_PVLV)) failed: file "util.c",
line 5882 at /home/rafl/.perl/lib/site_perl/5.10.0/Sub/Exporter.pm line 493.