On Sat Aug 02 14:38:57 2008, tetragon wrote: > Using a lightly modified config (RT#57532), I got parrot to build as a > 64-bit Intel binary on OS X. One of a series of segfaults encountered > appears to be triggered in Parrot_memalign in > config/gen/platform/darwin/memalign.c (if gdb is to be believed) while > running test 19 (and possibly also 17, 19 was the first I reproduced) > of the shootout tests. I do not currently have an extensive stack > trace of this crash; the crash reporter and gdb encountered > difficulties due to the addresses involved.
I now have a stacktrace taken from a breakpoint immediately before the crash. This breakpoint is only hit once in this execution, and was not hit in the trivial case of running parrot without any input. My 32-bit build terminates successfully without hitting the breakpoint when run on the input that causes the 64-bit build to crash. 64-bit: (gdb) break memalign.c:179 Breakpoint 1 at 0xceeb4: file memalign.c, line 179. (gdb) run -C t/examples/shootout_19.pir < examples/shootout/sumcol.pir_input Starting program: /opt/src/perl6/build-20080806-64/parrot -C t/examples/shootout_19.pir < examples/shootout/sumcol.pir_input Reading symbols for shared libraries . done Breakpoint 1, Parrot_memalign (align=256, size=216) at memalign.c:179 179 status = vm_deallocate(mach_task_self(), firstUnneededPage, (gdb) bt #0 Parrot_memalign (align=256, size=216) at memalign.c:179 #1 0x000000010009de00 in init_prederef (interp=0x100801200, which=6) at src/interpreter.c:491 #2 0x000000010009e132 in runops_cgp (interp=0x100801200, pc=0x10073c160) at src/interpreter.c:785 #3 0x000000010009e42b in runops_int (interp=0x100801200, offset=0) at src/interpreter.c:933 #4 0x000000010009eea1 in runops (interp=0x100801200, offs=0) at src/inter_run.c:101 #5 0x000000010009f174 in runops_args (interp=0x100801200, sub=0x1012f2ae0, obj=0x10084f0e0, meth_unused=0x0, sig=0x1002a7e8e "vP", ap=0x7fff5fbff700) at src/inter_run.c:223 #6 0x000000010009f36b in Parrot_runops_fromc_args (interp=0x100801200, sub=0x1012f2ae0, sig=0x1002a7e8e "vP") at src/inter_run.c:295 #7 0x0000000100084893 in Parrot_runcode (interp=0x100801200, argc=1, argv=0x7fff5fbff938) at src/embed.c:951 #8 0x0000000100278866 in imcc_run_pbc (interp=0x100801200, obj_file=0, output_file=0x0, argc=1, argv=0x7fff5fbff938) at compilers/imcc/main.c:783 #9 0x0000000100279167 in imcc_run (interp=0x100801200, sourcefile=0x7fff5fbffa5b "t/examples/shootout_19.pir", argc=1, argv=0x7fff5fbff938) at compilers/imcc/main.c:1071 #10 0x00000001000009a5 in main (argc=1, argv=0x7fff5fbff938) at src/main.c:61 (gdb) 32-bit: (gdb) break memalign.c:179 Breakpoint 1 at 0xbb3f7: file memalign.c, line 179. (gdb) run -C t/examples/shootout_19.pir < examples/shootout/sumcol.pir_input Starting program: /opt/src/perl6/build-20080806-32/parrot -C t/examples/shootout_19.pir < examples/shootout/sumcol.pir_input Reading symbols for shared libraries +++++++................................................................................... done Breakpoint 1 at 0x5723f7: file memalign.c, line 179. 500 Program exited normally. (gdb) bt No stack. (gdb)