some (disabled) OSX tests failing due to app stack mis-alignment, even natively
The enabled subset works:
# ctest -j3 -L OSX
100% tests passed, 0 tests failed out of 51
Label Time Summary:
OSX = 1247.70 sec
Total Test time (real) = 423.10 sec
However, some of the non-enabled tests crash due to mis-aligned stacks:
# bin32/drrun -- suite/tests/bin/common.eflags
<Starting application /Users/username/derek/dr/git/build_x86_dbg_tests/executable_path=/Users/username/derek/dr/git/build_x86_dbg_tests/suite/tests/bin/common.eflags (19638)>
<Initial options = -no_dynamic_options -code_api -stack_size 56K -max_elide_jmp 0 -max_elide_call 0 -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct >
<Application /Users/username/derek/dr/git/build_x86_dbg_tests/executable_path=/Users/username/derek/dr/git/build_x86_dbg_tests/suite/tests/bin/common.eflags (19638). Application exception at PC 0x992d52f0.
Signal 11 delivered to application as default action.
Callstack:
0x992d52f0 </usr/lib/system/libdyld.dylib+0x12f0>
0x000df1c7 </Users/username/derek/dr/git/build_x86_dbg_tests/suite/tests/bin/common.eflags+0x11c7>
0x000deea7 </Users/username/derek/dr/git/build_x86_dbg_tests/suite/tests/bin/common.eflags+0xea7>
0x000defaf </Users/username/derek/dr/git/build_x86_dbg_tests/suite/tests/bin/common.eflags+0xfaf>
0x992d76ad </usr/lib/system/libdyld.dylib+0x36ad>
0x00000001
>
<Stopping application /Users/username/derek/dr/git/build_x86_dbg_tests/executable_path=/Users/username/derek/dr/git/build_x86_dbg_tests/suite/tests/bin/common.eflags (19638)>
Segmentation fault: 11
App's stack is not aligned:
For SIGSEGV at cache pc 0x4d55f5d4, computed target write 0x00000000
faulting instr: movdqa %xmm0 -> 0x10(%esp)[16byte]
xsp=0xbff16878
Got signal at pc 0x530bf5d4 in this fragment:
Fragment 355, tag 0x992d52d0, flags 0x1000630, shared, size 81:
interp: start_pc = 0x992d52d0
check_thread_vm_area: pc = 0x992d52d0
prepend_entry_to_fraglist: putting fragment @0x992d52d0 (shared) on vmarea 0x90000000-0x9ed6e000
0x992d52d0 83 ec 64 sub $0x00000064 %esp -> %esp
wrote all 6 flags now!
0x992d52d3 89 44 24 54 mov %eax -> 0x54(%esp)[4byte]
0x992d52d7 8b 44 24 68 mov 0x68(%esp)[4byte] -> %eax
0x992d52db 89 44 24 60 mov %eax -> 0x60(%esp)[4byte]
0x992d52df 89 6c 24 68 mov %ebp -> 0x68(%esp)[4byte]
0x992d52e3 89 e5 mov %esp -> %ebp
0x992d52e5 83 c5 68 add $0x00000068 %ebp -> %ebp
0x992d52e8 89 4c 24 58 mov %ecx -> 0x58(%esp)[4byte]
0x992d52ec 89 54 24 5c mov %edx -> 0x5c(%esp)[4byte]
0x992d52f0 66 0f 7f 44 24 10 movdqa %xmm0 -> 0x10(%esp)[16byte]
0x992d52f6 66 0f 7f 4c 24 20 movdqa %xmm1 -> 0x20(%esp)[16byte]
0x992d52fc 66 0f 7f 54 24 30 movdqa %xmm2 -> 0x30(%esp)[16byte]
0x992d5302 66 0f 7f 5c 24 40 movdqa %xmm3 -> 0x40(%esp)[16byte]
0x992d5308 8b 44 24 64 mov 0x64(%esp)[4byte] -> %eax
module libdyld.dylib segment [0x992d4000,0x992d8000]
It crashes natively as well:
Native crash:
(lldb) bt
+ thread #1: tid = 0x1191b, 0x992d52f0 libdyld.dylib`misaligned_stack_error_, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
* frame #0: 0x992d52f0 libdyld.dylib`misaligned_stack_error_
frame #1: 0x000021c7 common.eflags`print(fmt="OK %d %s\n") + 55 at tools.c:291
frame #2: 0x00001ea7 common.eflags`test_flag(eflags=663, pos=0, set=true) + 215 at eflags.c:69
frame #3: 0x00001faf common.eflags`test_eflags_pos + 53
frame #4: 0x992d76ad libdyld.dylib`start + 1