Open
Description
The C++ tests for MacOS are broken. The _pthread_tsd_cleanup
function is calling find_zone_and_free()
which calls into the system allocator and not IsoAlloc. This is not broken on other platforms.
$ lldb build/cxx_tests
(lldb) target create "build/cxx_tests"
Current executable set to '/Users/user/code/mycode/isoalloc/build/cxx_tests' (arm64).
(lldb) r
Process 9083 launched: '/Users/user/code/mycode/isoalloc/build/cxx_tests' (arm64)
cxx_tests(9083,0x16fe87000) malloc: *** error for object 0x2b97f57fb980: pointer being freed was not allocated
cxx_tests(9083,0x16fe87000) malloc: *** set a breakpoint in malloc_error_break to debug
Process 9083 stopped
* thread #2, stop reason = EXC_BREAKPOINT (code=1, subcode=0x18e7bcaf4)
frame #0: 0x000000018e7bcaf4 libsystem_c.dylib`__abort + 168
libsystem_c.dylib`:
-> 0x18e7bcaf4 <+168>: brk #0x1
libsystem_c.dylib`abort_report_np:
0x18e7bcaf8 <+0>: pacibsp
0x18e7bcafc <+4>: sub sp, sp, #0x30
0x18e7bcb00 <+8>: stp x20, x19, [sp, #0x10]
Target 0: (cxx_tests) stopped.
(lldb) bt
* thread #2, stop reason = EXC_BREAKPOINT (code=1, subcode=0x18e7bcaf4)
* frame #0: 0x000000018e7bcaf4 libsystem_c.dylib`__abort + 168
frame #1: 0x000000018e7bca4c libsystem_c.dylib`abort + 192
frame #2: 0x000000018e6d3b08 libsystem_malloc.dylib`malloc_vreport + 908
frame #3: 0x000000018e6d73f4 libsystem_malloc.dylib`malloc_report + 64
frame #4: 0x000000018e6ebebc libsystem_malloc.dylib`find_zone_and_free + 308
frame #5: 0x000000018e8aa978 libsystem_pthread.dylib`_pthread_tsd_cleanup + 488
frame #6: 0x000000018e8ad724 libsystem_pthread.dylib`_pthread_exit + 84
frame #7: 0x000000018e8ad040 libsystem_pthread.dylib`_pthread_start + 148
Metadata
Metadata
Assignees
Labels
No labels