On Sun Dec 15 03:16:53 2013, bulk88 wrote: > I'll play around some more, if I figure > anymore more out, I'll post. On Perl 5.12 DEBUGGING I dont get as far as the runloop. I get a SEGV. Warning, this SEGV may be a totally different bug that was already fixed in blead a long time ago. Call stack. Optimizations disabled so 100% accurate. ------------------------------- > perl512.dll!Perl_peep(interpreter * my_perl=0x00394014, op * o=0x000000cc) Line 8483 + 0x3 C perl512.dll!Perl_peep(interpreter * my_perl=0x00394014, op * o=0x00853d58) Line 8729 + 0x13 C perl512.dll!Perl_newPROG(interpreter * my_perl=0x00394014, op * o=0x00853ce4) Line 2365 + 0x17 C perl512.dll!Perl_yyparse(interpreter * my_perl=0x00394014) Line 143 + 0x2c C perl512.dll!S_parse_body(interpreter * my_perl=0x00394014, char * * env=0x00282790, void (interpreter *)* xsinit=0x281d2190) Line 2160 + 0x9 C perl512.dll!perl_parse(interpreter * my_perl=0x00394014, void (interpreter *)* xsinit=0x281d2190, int argc=2, char * * argv=0x00282510, char * * env=0x00282790) Line 1605 + 0x11 C perl512.dll!RunPerl(int argc=2, char * * argv=0x00282510, char * * env=0x00282790) Line 263 + 0x1a C++ perl.exe!main(int argc=2, char * * argv=0x00282510, char * * env=0x00282cc0) Line 23 + 0x12 C perl.exe!mainCRTStartup() Line 398 + 0xe C kernel32.dll!_BaseProcessStart@4() + 0x23 ------------------------------- The caller Perl_peep's execution point. This is the "op * o=0x00853d58" one. *Not* the "op * o=0x000000cc" one. ------------------------------- case OP_ENTERLOOP: case OP_ENTERITER: while (cLOOP->op_redoop->op_type == OP_NULL) cLOOP->op_redoop = cLOOP->op_redoop->op_next; peep(cLOOP->op_redoop);<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< while (cLOOP->op_nextop->op_type == OP_NULL) cLOOP->op_nextop = cLOOP->op_nextop->op_next; peep(cLOOP->op_nextop); while (cLOOP->op_lastop->op_type == OP_NULL) cLOOP->op_lastop = cLOOP->op_lastop->op_next; peep(cLOOP->op_lastop); break; ----------------------- At the SEGV point, I dumped cLOOP, casted. 0x000000cc is visible. op_nextop looks wrong. 0x28002865 is a func *. ------------------------------------------------------------ - (loop *) my_perl->Iop 0x00881884 {op_next=0x000000cc {op_next=??? op_sibling=??? op_ppaddr=??? ...} op_sibling=0x00000000 {op_next=??? op_sibling=??? op_ppaddr=??? ...} op_ppaddr=0x00000000 ...} loop * + op_next 0x000000cc {op_next=??? op_sibling=??? op_ppaddr=??? ...} op * + op_sibling 0x00000000 {op_next=??? op_sibling=??? op_ppaddr=??? ...} op * op_ppaddr 0x00000000 op * (interpreter *)* op_targ 0 unsigned long op_type 0 unsigned short op_opt 0 unsigned short op_latefree 0 unsigned short op_latefreed 0 unsigned short op_attached 0 unsigned short op_spare 0 unsigned short op_flags 0 unsigned char op_private 0 unsigned char + op_first 0x00881884 {op_next=0x000000cc {op_next=??? op_sibling=??? op_ppaddr=??? ...} op_sibling=0x00000000 {op_next=??? op_sibling=??? op_ppaddr=??? ...} op_ppaddr=0x00000000 ...} op * + op_last 0x000000cc {op_next=??? op_sibling=??? op_ppaddr=??? ...} op * + op_redoop 0x008818ec {op_next=0x00887fe0 {op_next=0x00853ce4 {op_next=0x00000000 {op_next=??? op_sibling=??? op_ppaddr=??? ...} op_sibling=0x00000000 {op_next=??? op_sibling=??? op_ppaddr=??? ...} op_ppaddr=0x28002969 _Perl_pp_leave ...} op_sibling=0x00000000 {op_next=??? op_sibling=??? op_ppaddr=??? ...} op_ppaddr=0x28002969 _Perl_pp_leave ...} op_sibling=0x00000000 {op_next=??? op_sibling=??? op_ppaddr=??? ...} op_ppaddr=0x280031cf _Perl_pp_null ...} op * + op_nextop 0x28002865 _Perl_pp_enter op * + op_lastop 0x00000000 {op_next=??? op_sibling=??? op_ppaddr=??? ...} op * ------------------------------------------------------------ -- bulk88 ~ bulk88 at hotmail.com --- via perlbug: queue: perl5 status: open https://rt.perl.org/Ticket/Display.html?id=72406Thread Previous | Thread Next