On Thu, 06 Jun 2019 08:16:29 -0700, jkeenan wrote: > > (gdb) next > > 13092 Perl_croak(aTHX_ "Numeric format result too > > large"); > > 2: *PL_locale_mutex = {m_lock = {m_owner = 0, m_flags = 0, m_ceilings > > = 0x801e1c1e8, m_rb_lnk = 0, > > m_spare = 0x801e1c1f8}, m_flags = 1, m_count = 0, m_spinloops = > > 0, > > m_yieldloops = 0, m_ps = 0, > > m_qe = {tqe_next = 0x0, tqe_prev = 0x0}, m_pqe = {tqe_next = 0x0, > > tqe_prev = 0x0}, m_rb_prev = 0x0} > > 1: PL_locale_mutex = 0x801e1c1e0 Ok, so at this point it still looks valid ... > > Program received signal SIGSEGV, Segmentation fault. > > 0x0000000000597ad9 in Perl_dounwind (my_perl=0x801e22000, cxix=-1) at > > pp_ctl.c:1550 > > 1550 CX_LEAVE_SCOPE(cx); > > 2: *PL_locale_mutex = Error accessing memory address 0x2: Bad > > address. > > Disabling display 2 to avoid infinite recursion. .. but by the time we get here it has been corrupted to 0x2. I think it's worth another go at the 'watch', but if that fails we may have to step through with 'next' and 'step' until the displayed value changes. If we set the watchpoint later, it may work better: shell% gdb --args ./perl -we 'my $x = sprintf("%7000000000E", 0)' (gdb) break sv.c:13092 (gdb) run .. break at sv.c:13092 (the croak call) (gdb) watch PL_locale_mutex (gdb) cont As before, it should not take more than a few minutes after the 'cont'. Hugo --- via perlbug: queue: perl5 status: open https://rt.perl.org/Ticket/Display.html?id=134172Thread Previous | Thread Next