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. Hugo --- via perlbug: queue: perl5 status: open https://rt.perl.org/Ticket/Display.html?id=134172Thread Previous | Thread Next