develooper Front page | perl.perl5.porters | Postings from June 2019

[perl #134172] commit 027471cf breaks t/op/sprintf2.t on FreeBSD-11

Thread Previous | Thread Next
Hugo van der Sanden via RT
June 6, 2019 14:18
[perl #134172] commit 027471cf breaks t/op/sprintf2.t on FreeBSD-11
Message ID:
On Thu, 06 Jun 2019 04:37:28 -0700, jkeenan wrote:
> I let it run overnight.  No difference in results.

Oh, that's sad, it's clearly hanging in that time() call for some reason.

Let's try a different approach, closer to the likely source of the problem. Line 12950 of sv.c should be "float_need = 1  /* possible unary minus */", the point we start handling the large number in the sprintf pattern. Check that this is the right line, and thn try the following:

shell% gdb --args ./perl -we 'my $x = sprintf("%7000000000E", 0)'
(gdb) break sv.c:12950
(gdb) run
Breakpoint 1, Perl_sv_vcatpvfn_flags (my_perl=0xd43260, sv=0xd72e78, 
    pat=0xd76368 "%7000000000E", patlen=12, args=0x0, svargs=0xd48b18, 
    sv_count=1, maybe_tainted=0x7fffffffd2ff, flags=0) at sv.c:12950
12950               float_need =     1  /* possible unary minus */

and then:
(gdb) disp PL_locale_mutex
(gdb) disp *PL_locale_mutex
(gdb) next
.. and repeat 'next' about 15 times until the Perl_croak() call. If the displayed values haven't changed by this point, try 'cont' to see if they do change by the time we hit the SEGV.


via perlbug:  queue: perl5 status: open

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About