#1131: segfault in Parrot_assign_p_p after merge of pcc branch.
--------------------+-------------------------------------------------------
 Reporter:  coke    |       Owner:       
     Type:  bug     |      Status:  new  
 Priority:  normal  |   Milestone:       
Component:  none    |     Version:  trunk
 Severity:  fatal   |    Keywords:       
     Lang:  tcl     |       Patch:       
 Platform:          |  
--------------------+-------------------------------------------------------
Changes (by coke):

  * lang:  => tcl


Comment:

 Note that this error doesn't occur when running "parrot tcl.pbc", but only
 with the pbc_to_exe version. (in the other case, you get "attempt to
 access code outside of current code segment")

 Here's the backtrace on the pbc2exe version:

 {{{

 (gdb) run sg.tcl
 Starting program: /home/coke/sandbox/partcl/tclsh sg.tcl
 [Thread debugging using libthread_db enabled]

 Program received signal SIGSEGV, Segmentation fault.
 0x00161dcf in Parrot_assign_p_p (cur_opcode=0xb6fc70e8, interp=0x8052008)
     at src/ops/core_ops.c:20683
 20683       VTABLE_assign_pmc(interp, PREG(1), PREG(2));
 (gdb) bt
 #0  0x00161dcf in Parrot_assign_p_p (cur_opcode=0xb6fc70e8,
 interp=0x8052008)
     at src/ops/core_ops.c:20683
 #1  0x001c0001 in runops_fast_core (interp=0x8052008,
     runcore_unused=0x80e0028, pc=0xffffffff) at src/runcore/cores.c:514
 #2  0x001bf9ce in runops_int (interp=0x8052008, offset=0)
     at src/runcore/main.c:237
 #3  0x00195a2d in runops (interp=0x8052008, offs=0) at src/call/ops.c:127
 #4  0x001919b3 in Parrot_pcc_invoke_from_sig_object (interp=0x8052008,
     sub_obj=0x80b4028, call_object=0x80b4208) at src/call/pcc.c:359
 #5  0x00191a5e in Parrot_pcc_invoke_sub_from_c_args (interp=0x8052008,
     sub_obj=0x80b4028, sig=0x291012 "P->") at src/call/pcc.c:87
 #6  0x00184db0 in Parrot_runcode (interp=0x8052008, argc=2,
 argv=0xbffff8e4)
     at src/embed.c:811
 #7  0x08048ba1 in main (argc=2, argv=0xbffff8e4) at tcl.c:271
 }}}

 the innermost line is -

 {{{

     VTABLE_assign_pmc(interp, PREG(1), PREG(2));
 }}}

 But that's macro soup. I can't easily see what PREG(1|2) is.

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1131#comment:3>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to