Hi,
The assertion failure is in libffi so I'm not sure what is going on there. It's possible that Poly is doing something wrong but assertion failures are usually faults in the code itself.

The "Address out of bounds" message is simply something from the debugger. The value is a union which may sometimes be an integer and sometimes an address. In this case it is a small integer and isn't valid as an address.

David

On 11/01/2019 08:56, Kostirya wrote:
Hello.
I got FFI error when configure and built poly with --enable-debug *only*:
ASSERTION FAILURE: 0 at src/x86/ffi64.c:302

The error happens on Linux and FreeBSD.
I use PolyML from git at "Thu Jan 3 14:35:50" date (Linux) and "Fri
Jun 22 13:49:32 2018" (FreeBSD):
./configure --with-gmp --enable-debug

When I use PolyML *without* debugIt is all right. :-)

GDB backtrace on linux:

(gdb) bt
#0  0x00007f53c3fca1f7 in raise () from /lib64/libc.so.6
#1  0x00007f53c3fcb8e8 in abort () from /lib64/libc.so.6
#2  0x00007f53c4c1295f in ffi_assert ()
    from /home/nick/polyml/lib/libpolyml.so.9
#3  0x00007f53c4c1326a in ffi_prep_cif_machdep ()
    from /home/nick/polyml/lib/libpolyml.so.9
#4  0x00007f53c4be1d31 in poly_ffi (taskData=0x7f53bc01b8c0,
     args=0x7f53bc01baf8, code=0x7f53bc01baf0) at polyffi.cpp:381
#5  0x00007f53c4be2986 in PolyFFIGeneral (threadId=0x7f53c4f54870, code=...,
     arg=...) at polyffi.cpp:587
#6  0x0000000000408aa2 in area1 ()
#7  0x00007f53abe429c0 in ?? ()
#8  0x00007f53abe42700 in ?? ()
#9  0x0000000000001000 in ?? ()
#10 0x00007f53c400f53b in new_heap () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()


GDB backtrace on FreeBSD is more informative ans say "0x6f <Address
0x6f out of bounds>":

(gdb) bt
#0  0x000000080132a47a in thr_kill () from /lib/libc.so.7
#1  0x000000080132a444 in raise () from /lib/libc.so.7
#2  0x000000080132a3b9 in abort () from /lib/libc.so.7
#3  0x00000008009224a7 in ffi_assert ()
    from /home/nick/polyml_new/lib/libpolyml.so.9
#4  0x0000000800923922 in classify_argument ()
    from /home/nick/polyml_new/lib/libpolyml.so.9
#5  0x000000080092290e in examine_argument ()
    from /home/nick/polyml_new/lib/libpolyml.so.9
#6  0x00000008009227eb in ffi_prep_cif_machdep ()
    from /home/nick/polyml_new/lib/libpolyml.so.9
#7  0x000000080091b2d8 in ffi_prep_cif_core ()
    from /home/nick/polyml_new/lib/libpolyml.so.9
#8  0x000000080091b54d in ffi_prep_cif ()
    from /home/nick/polyml_new/lib/libpolyml.so.9
#9  0x00000008008e9cd8 in poly_ffi (taskData=0x802218200, args=0x80221c008,
     code=0x80221c000) at polyffi.cpp:379
#10 0x00000008008e8df0 in PolyFFIGeneral (threadId=0x8006b2208, code=
         {contents = {signedInt = 111, unsignedInt = 111, objectPtr =
0x6f, codePtr = 0x6f <Address 0x6f out of bounds>, stackAddr = 0x6f}},
arg=
         {contents = {signedInt = 34366811360, unsignedInt =
34366811360, objectPtr = 0x8006bece0, codePtr = 0x8006bece0 "\005",
stackAddr = 0x8006bece0}})
     at polyffi.cpp:585
_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to