Hallo,
I configured gambit on Ubuntu 14.04 with:
``` ./configure --enable-single-host --disable-gnu-gcc-specific-options --enable-c-opt=-O1 CC='/opt/llvm-3.8/bin/clang -g -save-temps -fsanitize=alignment -fsanitize-trap=alignment -Wno-parentheses-equality' ```
The `sanitize-trap` flag will make the program crash at the first load of a misaligned memory access.
Then running gsi with gdb:
``` $ gdb ./gsi/gsi
r
Program received signal SIGILL, Illegal instruction. trampoline (___ps=<optimized out>) at setup.c:2594 2594 ___SCMOBJ ___pc = ___ps->pc; ```
Source: ``` 2589 ___HIDDEN void trampoline 2590 ___P((___processor_state ___ps), 2591 (___ps) 2592 ___processor_state ___ps;) 2593 { 2594 ___SCMOBJ ___pc = ___ps->pc; <~~~~~~~~~~ CRASH HERE 2595 2596 for (;;) 2597 { 2598 #define CALL_STEP ___pc = ___LABEL_HOST(___pc)(___ps) ```
Full stack: ``` #0 trampoline (___ps=<optimized out>) at setup.c:2594 ___pc = <optimized out> #1 0x000000000049d08a in ___call (nargs=<optimized out>, proc=4209, stack_marker=12067313) at setup.c:2720 ___jbuf = { buf = {[0] = { __jmpbuf = {[0] = 10963953, [1] = 1, [2] = 140737488345024, [3] = 10963968, [4] = 11017649, [5] = 11019761, [6] = 8, [7] = 3}, __mask_was_saved = 8020980, __saved_mask = { __val = {[0] = 12067313, [1] = 12012728, [2] = 4837514, [3] = 219043398146, [4] = 43, [5] = 0 <repeats 11 times>} } }} } ___fp = <optimized out> ___r1 = <optimized out> ___r2 = 11017649 ___r3 = 10963968 ___err = <optimized out> #2 0x000000000049d1bc in ___run (thunk=<optimized out>) at setup.c:2754 ___jbuf = <optimized out> ___err = <optimized out> marker = -140737339487617 #3 0x000000000049d733 in ___setup (setup_params=<optimized out>) at setup.c:4225 err = 0 mol = <optimized out> module_descrs = <optimized out> #4 0x00000000004ba400 in ___main (linker=<optimized out>) at main.c:723 argv = <optimized out> current_argv = <optimized out> rpc_server_addr = <optimized out> debug_settings = <optimized out> standard_level = 1 live_percent = <optimized out> max_heap_len = <optimized out> min_heap_len = <optimized out> remote_dbg_addr = <optimized out> gambopt = <optimized out> gambitdir_map = <optimized out> runtime_options = <optimized out> script_line = <optimized out> extra_arg_pos = <optimized out> e = <optimized out> gambitdir = <optimized out> options_source = 3 setup_params = { version = 408005, argv = 0xb7a010, min_heap = 0, max_heap = 0, live_percent = 0, adjust_heap_hook = 0x0, display_error = 0x0, fatal_error = 0x0, standard_level = 0, debug_settings = 1089, file_settings = 0, terminal_settings = 0, stdio_settings = 0, gambitdir = 0x0, gambitdir_map = 0x0, remote_dbg_addr = 0x0, rpc_server_addr = 0x0, linker = 0x49c330 <____20___gsi__>, reset_argv0 = {[0] = 0}, reset_argv = {[0] = 0x7fffffffdad8, [1] = 0x0} } #5 0x00000000004aad5f in ___main_char (argc=<optimized out>, argv=<optimized out>, linker=0x49c330 <____20___gsi__>, script_line=0x0) at os_base.c:413 result = <optimized out> #6 0x00007ffff7329ec5 in __libc_start_main (main=0x49c340 <main>, argc=1, argv=0x7fffffffdc48, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdc38) at libc-start.c:287 result = <optimized out> unwind_buf = { cancel_jmp_buf = {[0] = { jmp_buf = {[0] = 0, [1] = -3871395014843174881, [2] = 4818192, [3] = 140737488346176, [4] = 0, [5] = 0, [6] = 3871395016067641375, [7] = 3871376987842408479}, mask_was_saved = 0 }}, priv = { pad = {[0] = 0x0, [1] = 0x0, [2] = 0x7a5830 <__libc_csu_init>, [3] = 0x7fffffffdc48}, data = { prev = 0x0, cleanup = 0x0, canceltype = 8017968 } } } not_first_call = <optimized out> #7 0x0000000000498539 in _start () ```
Cheers,