Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Here's the disassembly of the segfault.

Disassembly of Function perl58.dll!sortcv (0x2807A60E) ;******************************************************************* +************* SYM:sortcv <Long> ; pp_sort.c - Line 1634 ; ; static I32 ; sortcv(pTHX_ SV *a, SV *b) ; { 0x2807A60E: PUSH EBP 0x2807A60F: MOV EBP,ESP 0x2807A611: SUB ESP,0x10 ; pp_sort.c - Line 1635 ; I32 oldsaveix = PL_savestack_ix; 0x2807A614: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A617: MOV EAX,DWORD PTR [EAX+0x24] 0x2807A61A: MOV DWORD PTR [EBP-0x8],EAX ; VAR:oldsav +eix <Long> ; pp_sort.c - Line 1636 ; I32 oldscopeix = PL_scopestack_ix; 0x2807A61D: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A620: MOV EAX,DWORD PTR [EAX+0x18] 0x2807A623: MOV DWORD PTR [EBP-0x4],EAX ; VAR:oldsco +peix <Long> ; pp_sort.c - Line 1638 ; I32 result; ; GvSV(PL_firstgv) = a; 0x2807A626: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A629: MOV EAX,DWORD PTR [EAX+0x1A4] > 0x2807A62F: MOV EAX,DWORD PTR [EAX] ; !!SEGFAULT (trap 5) OCCU +RS HERE!! 0x2807A631: MOV EAX,DWORD PTR [EAX+0x20] 0x2807A634: MOV ECX,DWORD PTR [EBP+0xC] ; ARG:a <sv +*> 0x2807A637: MOV DWORD PTR [EAX],ECX ; pp_sort.c - Line 1639 ; GvSV(PL_secondgv) = b; 0x2807A639: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A63C: MOV EAX,DWORD PTR [EAX+0x1A8] 0x2807A642: MOV EAX,DWORD PTR [EAX] 0x2807A644: MOV EAX,DWORD PTR [EAX+0x20] 0x2807A647: MOV ECX,DWORD PTR [EBP+0x10] ; ARG:b <sv +*> 0x2807A64A: MOV DWORD PTR [EAX],ECX ; pp_sort.c - Line 1640 ; PL_stack_sp = PL_stack_base; 0x2807A64C: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A64F: MOV ECX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A652: MOV ECX,DWORD PTR [ECX+0xC] 0x2807A655: MOV DWORD PTR [EAX],ECX ; pp_sort.c - Line 1641 ; PL_op = PL_sortcop; 0x2807A657: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A65A: MOV ECX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A65D: MOV ECX,DWORD PTR [ECX+0x19C] 0x2807A663: MOV DWORD PTR [EAX+0x4],ECX ; pp_sort.c - Line 1642 ; CALLRUNOPS(aTHX); 0x2807A666: PUSH DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A669: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A66C: CALL DWORD PTR [EAX+0x86C] 0x2807A672: POP ECX ; pp_sort.c - Line 1643 ; if (PL_stack_sp != PL_stack_base + 1) 0x2807A673: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A676: MOV EAX,DWORD PTR [EAX+0xC] 0x2807A679: ADD EAX,0x4 0x2807A67C: MOV ECX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A67F: CMP DWORD PTR [ECX],EAX 0x2807A681: JZ 0x2807A692 ; (*+0x11) ; pp_sort.c - Line 1644 ; Perl_croak(aTHX_ "Sort subroutine didn't return single value") +; 0x2807A683: PUSH 0x2811EE88 ; SYM:`strin +g' ; DATA:Sort subroutine didn't return single value 0x2807A688: PUSH DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A68B: CALL 0x280E6F94 ; SYM:Perl_c +roak <Void> 0x2807A690: POP ECX 0x2807A691: POP ECX ; pp_sort.c - Line 1645 ; if (!SvNIOKp(*PL_stack_sp)) 0x2807A692: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *>; <==0x2807A681(*-0x11) 0x2807A695: MOV EAX,DWORD PTR [EAX] 0x2807A697: MOV EAX,DWORD PTR [EAX] 0x2807A699: MOV EAX,DWORD PTR [EAX+0x8] 0x2807A69C: AND EAX,0x3000000 0x2807A6A1: TEST EAX,EAX 0x2807A6A3: JNZ 0x2807A6B4 ; (*+0x11) ; pp_sort.c - Line 1646 ; Perl_croak(aTHX_ "Sort subroutine didn't return a numeric valu +e"); 0x2807A6A5: PUSH 0x2811EE58 ; SYM:`strin +g' ; DATA:Sort subroutine didn't return a numeric value 0x2807A6AA: PUSH DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A6AD: CALL 0x280E6F94 ; SYM:Perl_c +roak <Void> 0x2807A6B2: POP ECX 0x2807A6B3: POP ECX ; pp_sort.c - Line 1647 ; result = SvIV(*PL_stack_sp); 0x2807A6B4: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *>; <==0x2807A6A3(*-0x11) 0x2807A6B7: MOV EAX,DWORD PTR [EAX] 0x2807A6B9: MOV EAX,DWORD PTR [EAX] 0x2807A6BB: MOV EAX,DWORD PTR [EAX+0x8] 0x2807A6BE: AND EAX,0x10000 0x2807A6C3: TEST EAX,EAX 0x2807A6C5: JZ 0x2807A6D8 ; (*+0x13) 0x2807A6C7: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A6CA: MOV EAX,DWORD PTR [EAX] 0x2807A6CC: MOV EAX,DWORD PTR [EAX] 0x2807A6CE: MOV EAX,DWORD PTR [EAX] 0x2807A6D0: MOV EAX,DWORD PTR [EAX+0xC] 0x2807A6D3: MOV DWORD PTR [EBP-0x10],EAX ; VAR:0x10 0x2807A6D6: JMP 0x2807A6EC ; (*+0x16) 0x2807A6D8: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *>; <==0x2807A6C5(*-0x13) 0x2807A6DB: MOV EAX,DWORD PTR [EAX] 0x2807A6DD: PUSH DWORD PTR [EAX] 0x2807A6DF: PUSH DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A6E2: CALL 0x280AA037 ; SYM:Perl_s +v_2iv <Long> 0x2807A6E7: POP ECX 0x2807A6E8: POP ECX 0x2807A6E9: MOV DWORD PTR [EBP-0x10],EAX ; VAR:0x10 0x2807A6EC: MOV EAX,DWORD PTR [EBP-0x10] ; VAR:0x10; +<==0x2807A6D6(*-0x16) 0x2807A6EF: MOV DWORD PTR [EBP-0xC],EAX ; VAR:result + <Long> ; pp_sort.c - Line 1648 ; while (PL_scopestack_ix > oldscopeix) { 0x2807A6F2: MOV EAX,DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *>; <==0x2807A706(*+0x14) 0x2807A6F5: MOV EAX,DWORD PTR [EAX+0x18] 0x2807A6F8: CMP EAX,DWORD PTR [EBP-0x4] ; VAR:oldsco +peix <Long> 0x2807A6FB: JLE 0x2807A708 ; (*+0xD) ; pp_sort.c - Line 1649 ; LEAVE; 0x2807A6FD: PUSH DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A700: CALL 0x280A4E0E ; SYM:Perl_p +op_scope <Void> 0x2807A705: POP ECX ; pp_sort.c - Line 1650 ; } 0x2807A706: JMP 0x2807A6F2 ; (*-0x14) ; pp_sort.c - Line 1651 ; leave_scope(oldsaveix); 0x2807A708: PUSH DWORD PTR [EBP-0x8] ; VAR:oldsav +eix <Long>; <==0x2807A6FB(*-0xD) 0x2807A70B: PUSH DWORD PTR [EBP+0x8] ; ARG:my_per +l <interpreter *> 0x2807A70E: CALL 0x280A6A9D ; SYM:Perl_l +eave_scope <Void> 0x2807A713: POP ECX 0x2807A714: POP ECX ; pp_sort.c - Line 1652 ; return result; 0x2807A715: MOV EAX,DWORD PTR [EBP-0xC] ; VAR:result + <Long> ; pp_sort.c - Line 1653 ; } 0x2807A718: LEAVE 0x2807A719: RET ;******************************************************************* +*************

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algoritm, algorithm on the code side." - tachyon

In reply to Re^2: Perl threads sort test program crashes (UPDATED: CAN reproduce win32/5.8.4) by BrowserUk
in thread Perl threads sort test program crashes by eyepopslikeamosquito

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others exploiting the Monastery: (8)
    As of 2019-03-20 13:15 GMT
    Find Nodes?
      Voting Booth?
      How do you Carpe diem?

      Results (99 votes). Check out past polls.

      • (Sep 10, 2018 at 22:53 UTC) Welcome new users!