On Tue, Nov 30, 2010 at 11:45:10AM +0000, Nicholas Clark wrote: > On Mon, Nov 22, 2010 at 10:29:45AM +0000, Tim Bunce wrote: > > See http://matrix.cpantesters.org/?dist=Devel-NYTProf+4.05_90 > > > > Can anyone shed light on why NYTProf 4.05_90 fails on OpenBSD? > > (32-bit and amd64, with and without threads, perl 5.8.9 thru 5.12.2). > > > > Looks like the profiler dies (exit status 139). The rest is noise. > > The only OpenBSD system I have access to is the Sparc64 system in the GCC > compiler farm. Only 1 test fails. Sometimes. But... > > -bash-4.0$ cat 25.pl > use strict; > use Benchmark; > my $i; > sub add { ++$i } > timethis( 10, \&add ); > die "panic $i" unless $i == 10; > $ NYTPROF=start=begin gdb --args > /home/nick/Sandpit/snap5.9.x-v5.12.2/bin/perl5.12.2 -I blib/lib/ -d:NYTProf > 25.pl > (gdb) r > timethis 10: 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU) > (warning: too few iterations for a reliable count) > Program exited normally. > (gdb) r > Program received signal SIGSEGV, Segmentation fault. > 0x0000000048c584a8 in DB_leave (op=0x0, prev_op=0x46063980) at NYTProf.xs:1524 > 1524 is_multicall = (!op && CxMULTICALL(&cxstack[cxstack_ix])); > (gdb) p op > $1 = (OP *) 0x0 > (gdb) p PL_curstackinfo->si_cxix > $2 = -1 > (gdb) p PL_curstackinfo->si_cxstack > $3 = (PERL_CONTEXT *) 0x4577c000 > (gdb) > > That doesn't look good, but I have no clue what it means.
Odd. (Both the behaviour and that you have no clue what it means ;-) > Is that enough to go on? :-) Absolutely. It points the finger at a half-started attempt to improve the handling of multi-calls. I'd guess this change would be sufficient: - is_multicall = (!op && cxstack_ix >= 0 && CxMULTICALL(&cxstack[cxstack_ix])); + is_multicall = (!op && CxMULTICALL(&cxstack[cxstack_ix])); But since the code doesn't actually do anything useful I'm happy to simply disable it for now. (I'm keen to get a new release out so I can make a new PostgreSQL::PLPerl::NYTProf before PGday.EU.) I'll make a dev release soon. Thanks! > valgrind 3.6.0 supports OS X now, if that helps. Thanks Nicholas. I've installed it now. Tim. -- You've received this message because you are subscribed to the Devel::NYTProf Development User group. Group hosted at: http://groups.google.com/group/develnytprof-dev Project hosted at: http://perl-devel-nytprof.googlecode.com CPAN distribution: http://search.cpan.org/dist/Devel-NYTProf To post, email: [email protected] To unsubscribe, email: [email protected]
