On Sep 10, 2010, at 4:11 PM, chromatic wrote:

On Friday 10 September 2010 at 12:17, Jonathan Leto wrote:

Howdy,

If anybody has any tuits about this:

http://rt.perl.org/rt3/Ticket/Display.html?id=77778

it would be greatly appreciated.

A backtrace from a build with debugging symbols enabled would help. I use
these flags to configure Parrot:

         perl Configure.pl --maintainer --optimize="-O3 -g"

... and my binaries include debugging symbols.

-- c


This is from a Parrot configured with --maintainer --optimize=-g.
d1.t contained one line:
        my $c = "\c[LATIN SMALL LETTER A WITH DOT ABOVE]";
I do not know what would be helpful to show besides bt/up/l


ubu...@domu-12-31-39-14-f0-b4:~/Rakudo4/rakudo$ gdb --quiet ./perl6
Reading symbols from /home/ubuntu/Rakudo4/rakudo/perl6...done.
(gdb) run d1.t
Starting program: /home/ubuntu/Rakudo4/rakudo/perl6 d1.t
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0x00000000023d84b0 in ?? ()
(gdb) bt
#0  0x00000000023d84b0 in ?? ()
#1 0x00007ffff7a2befd in runops_fast_core (interp=0x22f3010, runcore_unused=0x23e6700, pc=0x7ffff46a2fc0)
    at src/runcore/cores.c:514
#2 0x00007ffff7a2b326 in runops_int (interp=0x22f3010, offset=324311) at src/runcore/main.c:224 #3 0x00007ffff79ef429 in runops (interp=0x22f3010, offs=324311) at src/call/ops.c:127 #4 0x00007ffff79ea136 in Parrot_pcc_invoke_from_sig_object (interp=0x22f3010, sub_obj=0x2823670, call_object=0x5bdd1e0)
    at src/call/pcc.c:325
#5 0x00007ffff79da85a in Parrot_ext_call (interp=0x22f3010, sub_pmc=0x2823670, signature=0x7ffff7b4348a "P->")
    at src/extend.c:322
#6 0x00007ffff79d7ab5 in Parrot_runcode (interp=0x22f3010, argc=2, argv=0x7fffffffe6f8) at src/embed.c:811 #7 0x0000000000400ee5 in main (argc=2, argv=0x7fffffffe6f8) at perl6.c:947484
(gdb) l
947446              return program_code;
947447          }
947448  #define RUNCORE 1
947449          int main(int argc, const char *argv[])
947450          {
947451              PackFile     *pf;
947452              Parrot_Interp interp;
947453              const unsigned char *program_code_addr;
947454  
947455 program_code_addr = (const unsigned char *)get_program_code();
(gdb) up
#1 0x00007ffff7a2befd in runops_fast_core (interp=0x22f3010, runcore_unused=0x23e6700, pc=0x7ffff46a2fc0)
    at src/runcore/cores.c:514
514             DO_OP(pc, interp);
(gdb) l
509              * Fast-core cause segfaults even on test suite
510             if (pc < code_start || pc >= code_end)
511                 Parrot_ex_throw_from_c_args(interp, NULL, 1,
512 "attempt to access code outside of current code segment");
513             */
514             DO_OP(pc, interp);
515         }
516     
517         return pc;
518     }
(gdb) up
#2 0x00007ffff7a2b326 in runops_int (interp=0x22f3010, offset=324311) at src/runcore/main.c:224
224             (*core)(interp, interp->run_core, pc);
(gdb) l
219 const runcore_runops_fn_type core = interp->run_core- >runops;
220     
221             interp->resume_offset = 0;
222             interp->resume_flag  &= ~(RESUME_RESTART | RESUME_INITIAL);
223     
224             (*core)(interp, interp->run_core, pc);
225     
226 /* if we have fallen out with resume and we were running CGOTO, set 227 * the stacktop again to a sane value, so that restarting the runloop
228              * is ok. */
(gdb) q


--
Hope this helps,
Bruce Gray

_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to