$ languages/perl6/perl6 -e'say "Hello"'
Segmentation fault

$ gdb languages/perl6/perl6
GNU gdb Red Hat Linux (6.6-35.fc8rh)
...
(gdb) run -e'say "Hello"'
Starting program: /home/saleem/work/compiler/parrot/languages/perl6/perl6
....
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208117568 (LWP 9605)]
0x0024ed99 in find_exception_handler (interp=0x83e7008,
exception=0x856eed8) at src/exceptions.c:300
300                 if (handler && handler->vtable->base_type ==

(gdb) print handler
$1 = (PMC * const) 0xb7883148

(gdb) print *handler
$2 = {cache = {_b = {_bufstart = 0xb787db34, _buflen = 0}, _ptrs =
{_struct_val = 0xb787db34, _pmc_val = 0x0}, _i = {_int_val =
-1215833292, _int_val2 = 0},
    _num_val = 1.5212943303180034e-314, _string_val = 0xb787db34},
flags = 524288, vtable = 0xdeadbeef, data = 0x0, pmc_ext = 0xdeadbeef,
real_self = 0xb7883148}

(gdb) print handler->vtable
$3 = (VTABLE *) 0xdeadbeef

(gdb) print *(handler->vtable)
Cannot access memory at address 0xdeadbeef

(gdb) backtrace
#0  0x0024ed99 in find_exception_handler (interp=0x9009008,
exception=0x9190ed8) at src/exceptions.c:300
#1  0x0024f394 in throw_exception (interp=0x9009008,
exception=0x9190ed8, dest_unused=0x0) at src/exceptions.c:562
#2  0x0024f70a in create_exception (interp=0x9009008) at src/exceptions.c:685
#3  0x0024f73d in handle_exception (interp=0x9009008) at src/exceptions.c:704
#4  0x002637dd in runops (interp=0x9009008, offs=14275) at src/inter_run.c:93
#5  0x00263af0 in runops_args (interp=0x9009008, sub=0x92f2a54,
obj=0x9053d68, meth_unused=0x0, sig=0x4c1ad7 "vP", ap=0xbfe6638c
"�{���c���\210�") at src/inter_run.c:232
#6  0x00263c2c in Parrot_runops_fromc_args (interp=0x9009008,
sub=0x92f2a54, sig=0x4c1ad7 "vP") at src/inter_run.c:301
#7  0x0024c517 in Parrot_runcode (interp=0x9009008, argc=2,
argv=0xbfe66484) at src/embed.c:950
#8  0x08048a58 in main ()


So it seems that an exception handler is not properly setup.

Reply via email to