-
Notifications
You must be signed in to change notification settings - Fork 514
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[appkit] Add NSImage lazy initialization #2
Conversation
I think it's better to bind the two methods internally (in appkit.cs), and then just chose either depending on the It's easy to get manual binding wrong (and in fact I believe you have a leak in your code). |
yes, better to use |
We were missing initByReferencingFile: which initializes the image object lazily. The non working use case was: var iconFile = NSBundle.MainBundle.PathForResource ("AppIcons", "icns"); NSApplication.SharedApplication.ApplicationIconImage = new NSImage (iconFile); In this example, the constructor is calling initWithContentsOfFile: which will not load the right icon from the .icns file. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=40349.
Alright, I updated the code to be a simple constructor taking a The story is that I changed my mind while writing the static method initially to make it use the boolean. The plan, as described in https://bugzilla.xamarin.com/show_bug.cgi?id=40349, defined by Chris, was to get 2 static methods (therefore, requiring manual bindings). Thanks for the feedback guys. |
if (lazy) | ||
Handle = InitByReferencingFile (fileName); | ||
else | ||
Handle = new NSImage (fileName).Handle; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This won't work, now you have two managed objects using the same native handle.
This means the moment the GC collects one of them, the other will point to random memory, and crash when used.
My suggestion here would be to add another interna binding for this overload, and use that instead (like you did for InitByReferencingFile).
Closing since the changes from my old private fork can't make it into the PR since the repo has been open sourced. |
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/fcntl.2.html F_SETNOSIGPIPE (lldb) bt all thread #1: tid = 0x1e176c9, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_a07', queue = 'com.apple.main-thread', stop reason = signal SIGPIPE frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x00425118 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7f0b5ac0, mutex=0x7f0b5a94, timeout_ms=15000) + 264 at mono-os-mutex.h:134 frame #4: 0x00424e12 com.xamarin.systemtests.watchkitapp.watchkitextension`_wapi_handle_timedwait_signal_handle(handle=0x00000162, timeout=15000, alertable=1, poll=0, alerted=0xbff5c78c) + 802 at handles.c:1554 frame #5: 0x00443387 com.xamarin.systemtests.watchkitapp.watchkitextension`wapi_WaitForSingleObjectEx(handle=0x00000162, timeout=15000, alertable=1) + 1127 at wait.c:173 frame xamarin#6: 0x003a51a1 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_wait_uninterrupted(thread=0x12324120, multiple=0, numhandles=1, handles=0xbff5c874, waitall=0, ms=15000, alertable=1) + 225 at threads.c:1518 frame xamarin#7: 0x003a55a2 com.xamarin.systemtests.watchkitapp.watchkitextension`ves_icall_System_Threading_WaitHandle_WaitOne_internal(this_obj=0x115f65e0, handle=0x00000162, ms=15000, exitContext=0) + 162 at threads.c:1652 frame xamarin#8: 0x137f06cc frame xamarin#9: 0x137f0594 frame xamarin#10: 0x137f0382 frame xamarin#11: 0x13e9053c frame xamarin#12: 0x13765e23 frame xamarin#13: 0x001d1365 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_jit_runtime_invoke(method=0x7c8c8950, obj=0x1159d670, params=0x00000000, exc=0x00000000) + 1349 at mini-runtime.c:2556 frame xamarin#14: 0x003327d0 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_invoke(method=0x7c8c8950, obj=0x1159d670, params=0x00000000, exc=0x00000000) + 224 at object.c:2897 frame xamarin#15: 0x0033bc75 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_invoke_array(method=0x7c8c8950, obj=0x1159d670, params=0x00000000, exc=0x00000000) + 2293 at object.c:4437 frame xamarin#16: 0x002b3f1b com.xamarin.systemtests.watchkitapp.watchkitextension`ves_icall_InternalInvoke(method=0x1351cab0, this_arg=0x1159d670, params=0x00000000, exc=0xbff5cd68) + 2475 at icall.c:2804 frame xamarin#17: 0x13766724 frame xamarin#18: 0x13766560 frame xamarin#19: 0x13766494 frame xamarin#20: 0x137662c4 frame xamarin#21: 0x13768af8 frame xamarin#22: 0x13768394 frame xamarin#23: 0x13768224 frame xamarin#24: 0x13765f7f frame xamarin#25: 0x13765e93 frame xamarin#26: 0x1375fcda frame xamarin#27: 0x1375f6dc frame xamarin#28: 0x137641cb frame xamarin#29: 0x13762458 frame xamarin#30: 0x1375fcda frame xamarin#31: 0x1375f6dc frame xamarin#32: 0x137641cb frame xamarin#33: 0x13762458 frame xamarin#34: 0x1375fcda frame xamarin#35: 0x1375f6dc frame xamarin#36: 0x137641cb frame xamarin#37: 0x13762458 frame xamarin#38: 0x1375fcda frame xamarin#39: 0x1375f6dc frame xamarin#40: 0x1375e32d frame xamarin#41: 0x137285c0 frame xamarin#42: 0x13728514 frame xamarin#43: 0x137284a8 frame xamarin#44: 0x12c4f7ef frame xamarin#45: 0x1298f833 frame xamarin#46: 0x001d1365 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_jit_runtime_invoke(method=0x7c8b8440, obj=0x115ecb40, params=0xbff5d7ac, exc=0x00000000) + 1349 at mini-runtime.c:2556 frame xamarin#47: 0x003327d0 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_invoke(method=0x7c8b8440, obj=0x115ecb40, params=0xbff5d7ac, exc=0x00000000) + 224 at object.c:2897 frame xamarin#48: 0x00494361 com.xamarin.systemtests.watchkitapp.watchkitextension`native_to_managed_trampoline_1(self=0x7d431130, _cmd="xamarinApplySelector", managed_method_ptr=0x00564d4c, r0="Foundation.NSAsyncActionDispatcher, Xamarin.WatchOS", r1="Apply") + 289 at Xamarin.WatchOS.registrar.watchos.m:40 frame xamarin#49: 0x00494caa com.xamarin.systemtests.watchkitapp.watchkitextension`-[__MonoMac_NSAsyncActionDispatcher xamarinApplySelector](self=0x7d431130, _cmd="xamarinApplySelector") + 74 at Xamarin.WatchOS.registrar.watchos.m:1831 frame xamarin#50: 0x045aa05d libobjc.A.dylib`-[NSObject performSelector:withObject:] + 70 frame xamarin#51: 0x0076af17 Foundation`__NSThreadPerformPerform + 323 frame xamarin#52: 0x0119828f CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 frame xamarin#53: 0x0118df1b CoreFoundation`__CFRunLoopDoSources0 + 523 frame xamarin#54: 0x0118d338 CoreFoundation`__CFRunLoopRun + 1032 frame xamarin#55: 0x0118cc76 CoreFoundation`CFRunLoopRunSpecific + 470 frame xamarin#56: 0x0118ca8b CoreFoundation`CFRunLoopRunInMode + 123 frame xamarin#57: 0x0076f601 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 308 frame xamarin#58: 0x008159cd Foundation`-[NSRunLoop(NSRunLoop) run] + 82 frame xamarin#59: 0x053c30eb libxpc.dylib`_xpc_objc_main + 486 frame xamarin#60: 0x053c5e4a libxpc.dylib`xpc_main + 215 frame xamarin#61: 0x0093ec45 Foundation`-[NSXPCListener resume] + 186 frame xamarin#62: 0x0d7f0326 PlugInKit`-[PKService run] + 582 frame xamarin#63: 0x0178cc69 WatchKit`main + 146 frame xamarin#64: 0x00493507 com.xamarin.systemtests.watchkitapp.watchkitextension`xamarin_main(argc=1, argv=0xbff5e954, is_extension=true) + 2599 at monotouch-main.m:461 frame xamarin#65: 0x004a176c com.xamarin.systemtests.watchkitapp.watchkitextension`xamarin_watchextension_main(argc=1, argv=0xbff5e954) + 124 at main.i386.m:37 frame xamarin#66: 0x050e3ae1 libdyld.dylib`start + 1 thread #2: tid = 0x1e18197, 0x054347f6 libsystem_kernel.dylib`kevent64 + 10, queue = 'com.apple.libdispatch-manager' frame #0: 0x054347f6 libsystem_kernel.dylib`kevent64 + 10 frame #1: 0x050ad2db libdispatch.dylib`_dispatch_mgr_invoke + 257 frame #2: 0x050ad02b libdispatch.dylib`_dispatch_mgr_thread + 60 thread #5: tid = 0x1e181a3, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdcc0 libsystem_pthread.dylib`pthread_cond_wait$UNIX2003 + 71 frame #3: 0x0041b3af com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_wait(cond=0x00564418, mutex=0x005643ec) + 47 at mono-os-mutex.h:105 frame #4: 0x0041addd com.xamarin.systemtests.watchkitapp.watchkitextension`thread_func(thread_data=0x00000000) + 125 at sgen-thread-pool.c:118 frame #5: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#6: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#7: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 * thread xamarin#6: tid = 0x1e181a4, 0x054353c6 libsystem_kernel.dylib`__write + 10, name = 'tid_2403' frame #0: 0x054353c6 libsystem_kernel.dylib`__write + 10 * frame #1: 0x00398113 com.xamarin.systemtests.watchkitapp.watchkitextension`selector_thread_wakeup + 67 at threadpool-ms-io.c:149 frame #2: 0x00398251 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_threadpool_ms_io_remove_socket(fd=20) + 113 at threadpool-ms-io.c:620 frame #3: 0x0038f466 com.xamarin.systemtests.watchkitapp.watchkitextension`ves_icall_System_Net_Sockets_Socket_Close_internal(sock=20, error=0xb0298b7c) + 38 at socket-io.c:692 frame #4: 0x13745fc4 frame #5: 0x13745df0 frame xamarin#6: 0x13737795 frame xamarin#7: 0x13745a8c frame xamarin#8: 0x13745a24 frame xamarin#9: 0x137459e3 frame xamarin#10: 0x137458f0 frame xamarin#11: 0x13e33c0b frame xamarin#12: 0x13455c3c frame xamarin#13: 0x002a45e8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_gc_run_finalize(obj=0x1396cb60, data=0x00000000) + 1384 at gc.c:256 frame xamarin#14: 0x00379fa4 com.xamarin.systemtests.watchkitapp.watchkitextension`sgen_client_run_finalize(obj=0x1396cb60) + 36 at sgen-mono.c:492 frame xamarin#15: 0x003e121e com.xamarin.systemtests.watchkitapp.watchkitextension`sgen_gc_invoke_finalizers + 382 at sgen-gc.c:2455 frame xamarin#16: 0x00379fbb com.xamarin.systemtests.watchkitapp.watchkitextension`mono_gc_invoke_finalizers + 11 at sgen-mono.c:498 frame xamarin#17: 0x002a5f4a com.xamarin.systemtests.watchkitapp.watchkitextension`finalizer_thread(unused=0x00000000) + 442 at gc.c:739 frame xamarin#18: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7bf07420) + 723 at threads.c:717 frame xamarin#19: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7bf07420) + 34 at threads.c:764 frame xamarin#20: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5e3e8) + 583 at mono-threads-posix.c:92 frame xamarin#21: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#22: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#23: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#7: tid = 0x1e181b5, 0x05433d76 libsystem_kernel.dylib`__workq_kernreturn + 10 frame #0: 0x05433d76 libsystem_kernel.dylib`__workq_kernreturn + 10 frame #1: 0x053f952d libsystem_pthread.dylib`_pthread_wqthread + 1289 frame #2: 0x053f6f72 libsystem_pthread.dylib`start_wqthread + 34 thread xamarin#8: tid = 0x1e181b6, 0x05433d76 libsystem_kernel.dylib`__workq_kernreturn + 10 frame #0: 0x05433d76 libsystem_kernel.dylib`__workq_kernreturn + 10 frame #1: 0x053f952d libsystem_pthread.dylib`_pthread_wqthread + 1289 frame #2: 0x053f6f72 libsystem_pthread.dylib`start_wqthread + 34 thread xamarin#9: tid = 0x1e181d2, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_2f0f' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x00464538 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x00564b74, mutex=0x00564b48, timeout_ms=100) + 264 at mono-os-mutex.h:134 frame #4: 0x004641ef com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x00564b74, mutex=0x00564b48, timeout_ms=100) + 63 at mono-coop-mutex.h:107 frame #5: 0x00462dd5 com.xamarin.systemtests.watchkitapp.watchkitextension`sleep_interruptable(ms=100, alerted=0xb02bae2c) + 421 at mono-threads.c:1155 frame xamarin#6: 0x00462a8b com.xamarin.systemtests.watchkitapp.watchkitextension`mono_thread_info_sleep(ms=100, alerted=0xb02bae2c) + 139 at mono-threads.c:1187 frame xamarin#7: 0x003a0567 com.xamarin.systemtests.watchkitapp.watchkitextension`monitor_thread + 295 at threadpool-ms.c:887 frame xamarin#8: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d33d9f0) + 723 at threads.c:717 frame xamarin#9: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d33d9f0) + 34 at threads.c:764 frame xamarin#10: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5d1a8) + 583 at mono-threads-posix.c:92 frame xamarin#11: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#12: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#13: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#10: tid = 0x1e181d3, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_300f' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=18478) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=18478) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7be244b0) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7be244b0) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5d148) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#11: tid = 0x1e181d6, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_370b' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=23036) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=23036) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d0222a0) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d0222a0) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0520738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#12: tid = 0x1e1828f, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_400f' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x00425118 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7f0b2eec, mutex=0x7f0b2ec0, timeout_ms=89999) + 264 at mono-os-mutex.h:134 frame #4: 0x00424e12 com.xamarin.systemtests.watchkitapp.watchkitextension`_wapi_handle_timedwait_signal_handle(handle=0x0000010d, timeout=89999, alertable=1, poll=0, alerted=0xb072494c) + 802 at handles.c:1554 frame #5: 0x00443387 com.xamarin.systemtests.watchkitapp.watchkitextension`wapi_WaitForSingleObjectEx(handle=0x0000010d, timeout=89999, alertable=1) + 1127 at wait.c:173 frame xamarin#6: 0x003a51a1 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_wait_uninterrupted(thread=0x123266a0, multiple=0, numhandles=1, handles=0xb0724a34, waitall=0, ms=89999, alertable=1) + 225 at threads.c:1518 frame xamarin#7: 0x003a55a2 com.xamarin.systemtests.watchkitapp.watchkitextension`ves_icall_System_Threading_WaitHandle_WaitOne_internal(this_obj=0x115f1b00, handle=0x0000010d, ms=89999, exitContext=0) + 162 at threads.c:1652 frame xamarin#8: 0x137f06cc frame xamarin#9: 0x137f0594 frame xamarin#10: 0x137f0382 frame xamarin#11: 0x1376c06e frame xamarin#12: 0x1376af7b frame xamarin#13: 0x1344d8b8 frame xamarin#14: 0x1344d36c frame xamarin#15: 0x1376a9d0 frame xamarin#16: 0x1376a8f8 frame xamarin#17: 0x1376a883 frame xamarin#18: 0x001d1365 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_jit_runtime_invoke(method=0x7f18c1f0, obj=0x115f1c70, params=0xb0724ec0, exc=0x00000000) + 1349 at mini-runtime.c:2556 frame xamarin#19: 0x003327d0 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_invoke(method=0x7f18c1f0, obj=0x115f1c70, params=0xb0724ec0, exc=0x00000000) + 224 at object.c:2897 frame xamarin#20: 0x00339b7f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_delegate_invoke(delegate=0x115f1c70, params=0xb0724ec0, exc=0x00000000) + 175 at object.c:3657 frame xamarin#21: 0x003ab807 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d26a5f0) + 855 at threads.c:723 frame xamarin#22: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d26a5f0) + 34 at threads.c:764 frame xamarin#23: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5b248) + 583 at mono-threads-posix.c:92 frame xamarin#24: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#25: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#26: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#13: tid = 0x1e190a8, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_5593' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=59668) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=59668) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d36b470) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d36b470) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0622738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#14: tid = 0x1e19492, 0x0543373e libsystem_kernel.dylib`__select + 10, name = 'tid_1c07' frame #0: 0x0543373e libsystem_kernel.dylib`__select + 10 frame #1: 0x00458e30 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_poll(ufds=<unavailable>, nfds=14, timeout=<unavailable>) + 416 at mono-poll.c:83 frame #2: 0x00399788 com.xamarin.systemtests.watchkitapp.watchkitextension`poll_event_wait(callback=(com.xamarin.systemtests.watchkitapp.watchkitextension`wait_callback at threadpool-ms-io.c:247), user_data=0x7d27edd0) + 152 at threadpool-ms-io-poll.c:152 frame #3: 0x00398eb8 com.xamarin.systemtests.watchkitapp.watchkitextension`selector_thread(data=0x00000000) + 2104 at threadpool-ms-io.c:413 frame #4: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d27f390) + 723 at threads.c:717 frame #5: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d27f390) + 34 at threads.c:764 frame xamarin#6: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5c4a8) + 583 at mono-threads-posix.c:92 frame xamarin#7: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#8: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#9: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#15: tid = 0x1e1949d, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_42cf' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=25061) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=25061) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d2783b0) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d2783b0) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0826738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#16: tid = 0x1e194a2, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_4337' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=58904) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=58904) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d2792b0) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d2792b0) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb00b4648) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#17: tid = 0x1e194a3, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_5d0b' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=44800) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=44800) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d279930) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d279930) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0520738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#18: tid = 0x1e194a4, 0x0044a69d com.xamarin.systemtests.watchkitapp.watchkitextension`get_hazardous_pointer(pp=0x7be4324c, hp=0x11536384, hazard_index=1) + 381 at hazard-pointer.c:215, name = 'tid_4fa3' frame #0: 0x0044a69d com.xamarin.systemtests.watchkitapp.watchkitextension`get_hazardous_pointer(pp=0x7be4324c, hp=0x11536384, hazard_index=1) + 381 at hazard-pointer.c:215 frame #1: 0x002c6752 com.xamarin.systemtests.watchkitapp.watchkitextension`jit_info_table_chunk_index(chunk=0x7be43200, hp=0x11536384, addr=0x13761be0) + 130 at jit-info.c:200 frame #2: 0x002c54b2 com.xamarin.systemtests.watchkitapp.watchkitextension`jit_info_table_find(table=0x7f29de00, hp=0x11536384, addr=0x13761be0) + 178 at jit-info.c:222 frame #3: 0x002c5255 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_jit_info_table_find_internal(domain=0x7be07e70, addr="\x8bE?? P?O???D$\x04\x93\x88", try_aot=1, allow_trampolines=1) + 133 at jit-info.c:293 frame #4: 0x001bacf6 com.xamarin.systemtests.watchkitapp.watchkitextension`mini_jit_info_table_find_ext(domain=0x7be07e70, addr="\x8bE?? P?O???D$\x04\x93\x88", allow_trampolines=1, out_domain=0x00000000) + 102 at mini-exceptions.c:1020 frame #5: 0x001b95d2 com.xamarin.systemtests.watchkitapp.watchkitextension`mini_jit_info_table_find(domain=0x7be07e70, addr="\x8bE?? P?O???D$\x04\x93\x88", out_domain=0x00000000) + 66 at mini-exceptions.c:1058 frame xamarin#6: 0x001d9b3b com.xamarin.systemtests.watchkitapp.watchkitextension`common_call_trampoline_inner(regs=0xb0c2e860, code="\x8bE?? P?O???D$\x04\x93\x88", m=0x7f17d830, vt=0x00000000, vtable_slot=0x00000000) + 5147 at mini-trampolines.c:784 frame xamarin#7: 0x001d5e1b com.xamarin.systemtests.watchkitapp.watchkitextension`common_call_trampoline(regs=0xb0c2e860, code="\x8bE?? P?O???D$\x04\x93\x88", m=0x7f17d830, vt=0x00000000, vtable_slot=0x00000000) + 91 at mini-trampolines.c:808 frame xamarin#8: 0x001d5db7 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_magic_trampoline(regs=0xb0c2e860, code="\x8bE?? P?O???D$\x04\x93\x88", arg=0x7f17d830, tramp=0x00000000) + 103 at mini-trampolines.c:823 frame xamarin#9: 0x11526188 thread xamarin#19: tid = 0x1e194a5, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_4717' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=22144) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=22144) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d369d60) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d369d60) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0a2a738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/fcntl.2.html F_SETNOSIGPIPE (lldb) bt all thread #1: tid = 0x1e176c9, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_a07', queue = 'com.apple.main-thread', stop reason = signal SIGPIPE frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x00425118 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7f0b5ac0, mutex=0x7f0b5a94, timeout_ms=15000) + 264 at mono-os-mutex.h:134 frame #4: 0x00424e12 com.xamarin.systemtests.watchkitapp.watchkitextension`_wapi_handle_timedwait_signal_handle(handle=0x00000162, timeout=15000, alertable=1, poll=0, alerted=0xbff5c78c) + 802 at handles.c:1554 frame #5: 0x00443387 com.xamarin.systemtests.watchkitapp.watchkitextension`wapi_WaitForSingleObjectEx(handle=0x00000162, timeout=15000, alertable=1) + 1127 at wait.c:173 frame xamarin#6: 0x003a51a1 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_wait_uninterrupted(thread=0x12324120, multiple=0, numhandles=1, handles=0xbff5c874, waitall=0, ms=15000, alertable=1) + 225 at threads.c:1518 frame xamarin#7: 0x003a55a2 com.xamarin.systemtests.watchkitapp.watchkitextension`ves_icall_System_Threading_WaitHandle_WaitOne_internal(this_obj=0x115f65e0, handle=0x00000162, ms=15000, exitContext=0) + 162 at threads.c:1652 frame xamarin#8: 0x137f06cc frame xamarin#9: 0x137f0594 frame xamarin#10: 0x137f0382 frame xamarin#11: 0x13e9053c frame xamarin#12: 0x13765e23 frame xamarin#13: 0x001d1365 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_jit_runtime_invoke(method=0x7c8c8950, obj=0x1159d670, params=0x00000000, exc=0x00000000) + 1349 at mini-runtime.c:2556 frame xamarin#14: 0x003327d0 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_invoke(method=0x7c8c8950, obj=0x1159d670, params=0x00000000, exc=0x00000000) + 224 at object.c:2897 frame xamarin#15: 0x0033bc75 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_invoke_array(method=0x7c8c8950, obj=0x1159d670, params=0x00000000, exc=0x00000000) + 2293 at object.c:4437 frame xamarin#16: 0x002b3f1b com.xamarin.systemtests.watchkitapp.watchkitextension`ves_icall_InternalInvoke(method=0x1351cab0, this_arg=0x1159d670, params=0x00000000, exc=0xbff5cd68) + 2475 at icall.c:2804 frame xamarin#17: 0x13766724 frame xamarin#18: 0x13766560 frame xamarin#19: 0x13766494 frame xamarin#20: 0x137662c4 frame xamarin#21: 0x13768af8 frame xamarin#22: 0x13768394 frame xamarin#23: 0x13768224 frame xamarin#24: 0x13765f7f frame xamarin#25: 0x13765e93 frame xamarin#26: 0x1375fcda frame xamarin#27: 0x1375f6dc frame xamarin#28: 0x137641cb frame xamarin#29: 0x13762458 frame xamarin#30: 0x1375fcda frame xamarin#31: 0x1375f6dc frame xamarin#32: 0x137641cb frame xamarin#33: 0x13762458 frame xamarin#34: 0x1375fcda frame xamarin#35: 0x1375f6dc frame xamarin#36: 0x137641cb frame xamarin#37: 0x13762458 frame xamarin#38: 0x1375fcda frame xamarin#39: 0x1375f6dc frame xamarin#40: 0x1375e32d frame xamarin#41: 0x137285c0 frame xamarin#42: 0x13728514 frame xamarin#43: 0x137284a8 frame xamarin#44: 0x12c4f7ef frame xamarin#45: 0x1298f833 frame xamarin#46: 0x001d1365 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_jit_runtime_invoke(method=0x7c8b8440, obj=0x115ecb40, params=0xbff5d7ac, exc=0x00000000) + 1349 at mini-runtime.c:2556 frame xamarin#47: 0x003327d0 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_invoke(method=0x7c8b8440, obj=0x115ecb40, params=0xbff5d7ac, exc=0x00000000) + 224 at object.c:2897 frame xamarin#48: 0x00494361 com.xamarin.systemtests.watchkitapp.watchkitextension`native_to_managed_trampoline_1(self=0x7d431130, _cmd="xamarinApplySelector", managed_method_ptr=0x00564d4c, r0="Foundation.NSAsyncActionDispatcher, Xamarin.WatchOS", r1="Apply") + 289 at Xamarin.WatchOS.registrar.watchos.m:40 frame xamarin#49: 0x00494caa com.xamarin.systemtests.watchkitapp.watchkitextension`-[__MonoMac_NSAsyncActionDispatcher xamarinApplySelector](self=0x7d431130, _cmd="xamarinApplySelector") + 74 at Xamarin.WatchOS.registrar.watchos.m:1831 frame xamarin#50: 0x045aa05d libobjc.A.dylib`-[NSObject performSelector:withObject:] + 70 frame xamarin#51: 0x0076af17 Foundation`__NSThreadPerformPerform + 323 frame xamarin#52: 0x0119828f CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 frame xamarin#53: 0x0118df1b CoreFoundation`__CFRunLoopDoSources0 + 523 frame xamarin#54: 0x0118d338 CoreFoundation`__CFRunLoopRun + 1032 frame xamarin#55: 0x0118cc76 CoreFoundation`CFRunLoopRunSpecific + 470 frame xamarin#56: 0x0118ca8b CoreFoundation`CFRunLoopRunInMode + 123 frame xamarin#57: 0x0076f601 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 308 frame xamarin#58: 0x008159cd Foundation`-[NSRunLoop(NSRunLoop) run] + 82 frame xamarin#59: 0x053c30eb libxpc.dylib`_xpc_objc_main + 486 frame xamarin#60: 0x053c5e4a libxpc.dylib`xpc_main + 215 frame xamarin#61: 0x0093ec45 Foundation`-[NSXPCListener resume] + 186 frame xamarin#62: 0x0d7f0326 PlugInKit`-[PKService run] + 582 frame xamarin#63: 0x0178cc69 WatchKit`main + 146 frame xamarin#64: 0x00493507 com.xamarin.systemtests.watchkitapp.watchkitextension`xamarin_main(argc=1, argv=0xbff5e954, is_extension=true) + 2599 at monotouch-main.m:461 frame xamarin#65: 0x004a176c com.xamarin.systemtests.watchkitapp.watchkitextension`xamarin_watchextension_main(argc=1, argv=0xbff5e954) + 124 at main.i386.m:37 frame xamarin#66: 0x050e3ae1 libdyld.dylib`start + 1 thread #2: tid = 0x1e18197, 0x054347f6 libsystem_kernel.dylib`kevent64 + 10, queue = 'com.apple.libdispatch-manager' frame #0: 0x054347f6 libsystem_kernel.dylib`kevent64 + 10 frame #1: 0x050ad2db libdispatch.dylib`_dispatch_mgr_invoke + 257 frame #2: 0x050ad02b libdispatch.dylib`_dispatch_mgr_thread + 60 thread #5: tid = 0x1e181a3, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdcc0 libsystem_pthread.dylib`pthread_cond_wait$UNIX2003 + 71 frame #3: 0x0041b3af com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_wait(cond=0x00564418, mutex=0x005643ec) + 47 at mono-os-mutex.h:105 frame #4: 0x0041addd com.xamarin.systemtests.watchkitapp.watchkitextension`thread_func(thread_data=0x00000000) + 125 at sgen-thread-pool.c:118 frame #5: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#6: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#7: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 * thread xamarin#6: tid = 0x1e181a4, 0x054353c6 libsystem_kernel.dylib`__write + 10, name = 'tid_2403' frame #0: 0x054353c6 libsystem_kernel.dylib`__write + 10 * frame #1: 0x00398113 com.xamarin.systemtests.watchkitapp.watchkitextension`selector_thread_wakeup + 67 at threadpool-ms-io.c:149 frame #2: 0x00398251 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_threadpool_ms_io_remove_socket(fd=20) + 113 at threadpool-ms-io.c:620 frame #3: 0x0038f466 com.xamarin.systemtests.watchkitapp.watchkitextension`ves_icall_System_Net_Sockets_Socket_Close_internal(sock=20, error=0xb0298b7c) + 38 at socket-io.c:692 frame #4: 0x13745fc4 frame #5: 0x13745df0 frame xamarin#6: 0x13737795 frame xamarin#7: 0x13745a8c frame xamarin#8: 0x13745a24 frame xamarin#9: 0x137459e3 frame xamarin#10: 0x137458f0 frame xamarin#11: 0x13e33c0b frame xamarin#12: 0x13455c3c frame xamarin#13: 0x002a45e8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_gc_run_finalize(obj=0x1396cb60, data=0x00000000) + 1384 at gc.c:256 frame xamarin#14: 0x00379fa4 com.xamarin.systemtests.watchkitapp.watchkitextension`sgen_client_run_finalize(obj=0x1396cb60) + 36 at sgen-mono.c:492 frame xamarin#15: 0x003e121e com.xamarin.systemtests.watchkitapp.watchkitextension`sgen_gc_invoke_finalizers + 382 at sgen-gc.c:2455 frame xamarin#16: 0x00379fbb com.xamarin.systemtests.watchkitapp.watchkitextension`mono_gc_invoke_finalizers + 11 at sgen-mono.c:498 frame xamarin#17: 0x002a5f4a com.xamarin.systemtests.watchkitapp.watchkitextension`finalizer_thread(unused=0x00000000) + 442 at gc.c:739 frame xamarin#18: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7bf07420) + 723 at threads.c:717 frame xamarin#19: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7bf07420) + 34 at threads.c:764 frame xamarin#20: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5e3e8) + 583 at mono-threads-posix.c:92 frame xamarin#21: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#22: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#23: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#7: tid = 0x1e181b5, 0x05433d76 libsystem_kernel.dylib`__workq_kernreturn + 10 frame #0: 0x05433d76 libsystem_kernel.dylib`__workq_kernreturn + 10 frame #1: 0x053f952d libsystem_pthread.dylib`_pthread_wqthread + 1289 frame #2: 0x053f6f72 libsystem_pthread.dylib`start_wqthread + 34 thread xamarin#8: tid = 0x1e181b6, 0x05433d76 libsystem_kernel.dylib`__workq_kernreturn + 10 frame #0: 0x05433d76 libsystem_kernel.dylib`__workq_kernreturn + 10 frame #1: 0x053f952d libsystem_pthread.dylib`_pthread_wqthread + 1289 frame #2: 0x053f6f72 libsystem_pthread.dylib`start_wqthread + 34 thread xamarin#9: tid = 0x1e181d2, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_2f0f' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x00464538 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x00564b74, mutex=0x00564b48, timeout_ms=100) + 264 at mono-os-mutex.h:134 frame #4: 0x004641ef com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x00564b74, mutex=0x00564b48, timeout_ms=100) + 63 at mono-coop-mutex.h:107 frame #5: 0x00462dd5 com.xamarin.systemtests.watchkitapp.watchkitextension`sleep_interruptable(ms=100, alerted=0xb02bae2c) + 421 at mono-threads.c:1155 frame xamarin#6: 0x00462a8b com.xamarin.systemtests.watchkitapp.watchkitextension`mono_thread_info_sleep(ms=100, alerted=0xb02bae2c) + 139 at mono-threads.c:1187 frame xamarin#7: 0x003a0567 com.xamarin.systemtests.watchkitapp.watchkitextension`monitor_thread + 295 at threadpool-ms.c:887 frame xamarin#8: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d33d9f0) + 723 at threads.c:717 frame xamarin#9: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d33d9f0) + 34 at threads.c:764 frame xamarin#10: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5d1a8) + 583 at mono-threads-posix.c:92 frame xamarin#11: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#12: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#13: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#10: tid = 0x1e181d3, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_300f' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=18478) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=18478) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7be244b0) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7be244b0) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5d148) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#11: tid = 0x1e181d6, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_370b' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=23036) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=23036) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d0222a0) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d0222a0) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0520738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#12: tid = 0x1e1828f, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_400f' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x00425118 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7f0b2eec, mutex=0x7f0b2ec0, timeout_ms=89999) + 264 at mono-os-mutex.h:134 frame #4: 0x00424e12 com.xamarin.systemtests.watchkitapp.watchkitextension`_wapi_handle_timedwait_signal_handle(handle=0x0000010d, timeout=89999, alertable=1, poll=0, alerted=0xb072494c) + 802 at handles.c:1554 frame #5: 0x00443387 com.xamarin.systemtests.watchkitapp.watchkitextension`wapi_WaitForSingleObjectEx(handle=0x0000010d, timeout=89999, alertable=1) + 1127 at wait.c:173 frame xamarin#6: 0x003a51a1 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_wait_uninterrupted(thread=0x123266a0, multiple=0, numhandles=1, handles=0xb0724a34, waitall=0, ms=89999, alertable=1) + 225 at threads.c:1518 frame xamarin#7: 0x003a55a2 com.xamarin.systemtests.watchkitapp.watchkitextension`ves_icall_System_Threading_WaitHandle_WaitOne_internal(this_obj=0x115f1b00, handle=0x0000010d, ms=89999, exitContext=0) + 162 at threads.c:1652 frame xamarin#8: 0x137f06cc frame xamarin#9: 0x137f0594 frame xamarin#10: 0x137f0382 frame xamarin#11: 0x1376c06e frame xamarin#12: 0x1376af7b frame xamarin#13: 0x1344d8b8 frame xamarin#14: 0x1344d36c frame xamarin#15: 0x1376a9d0 frame xamarin#16: 0x1376a8f8 frame xamarin#17: 0x1376a883 frame xamarin#18: 0x001d1365 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_jit_runtime_invoke(method=0x7f18c1f0, obj=0x115f1c70, params=0xb0724ec0, exc=0x00000000) + 1349 at mini-runtime.c:2556 frame xamarin#19: 0x003327d0 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_invoke(method=0x7f18c1f0, obj=0x115f1c70, params=0xb0724ec0, exc=0x00000000) + 224 at object.c:2897 frame xamarin#20: 0x00339b7f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_runtime_delegate_invoke(delegate=0x115f1c70, params=0xb0724ec0, exc=0x00000000) + 175 at object.c:3657 frame xamarin#21: 0x003ab807 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d26a5f0) + 855 at threads.c:723 frame xamarin#22: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d26a5f0) + 34 at threads.c:764 frame xamarin#23: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5b248) + 583 at mono-threads-posix.c:92 frame xamarin#24: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#25: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#26: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#13: tid = 0x1e190a8, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_5593' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=59668) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=59668) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d36b470) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d36b470) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0622738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#14: tid = 0x1e19492, 0x0543373e libsystem_kernel.dylib`__select + 10, name = 'tid_1c07' frame #0: 0x0543373e libsystem_kernel.dylib`__select + 10 frame #1: 0x00458e30 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_poll(ufds=<unavailable>, nfds=14, timeout=<unavailable>) + 416 at mono-poll.c:83 frame #2: 0x00399788 com.xamarin.systemtests.watchkitapp.watchkitextension`poll_event_wait(callback=(com.xamarin.systemtests.watchkitapp.watchkitextension`wait_callback at threadpool-ms-io.c:247), user_data=0x7d27edd0) + 152 at threadpool-ms-io-poll.c:152 frame #3: 0x00398eb8 com.xamarin.systemtests.watchkitapp.watchkitextension`selector_thread(data=0x00000000) + 2104 at threadpool-ms-io.c:413 frame #4: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d27f390) + 723 at threads.c:717 frame #5: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d27f390) + 34 at threads.c:764 frame xamarin#6: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xbff5c4a8) + 583 at mono-threads-posix.c:92 frame xamarin#7: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#8: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#9: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#15: tid = 0x1e1949d, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_42cf' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=25061) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=25061) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d2783b0) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d2783b0) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0826738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#16: tid = 0x1e194a2, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_4337' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=58904) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=58904) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d2792b0) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d2792b0) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb00b4648) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#17: tid = 0x1e194a3, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_5d0b' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=44800) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=44800) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d279930) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d279930) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0520738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34 thread xamarin#18: tid = 0x1e194a4, 0x0044a69d com.xamarin.systemtests.watchkitapp.watchkitextension`get_hazardous_pointer(pp=0x7be4324c, hp=0x11536384, hazard_index=1) + 381 at hazard-pointer.c:215, name = 'tid_4fa3' frame #0: 0x0044a69d com.xamarin.systemtests.watchkitapp.watchkitextension`get_hazardous_pointer(pp=0x7be4324c, hp=0x11536384, hazard_index=1) + 381 at hazard-pointer.c:215 frame #1: 0x002c6752 com.xamarin.systemtests.watchkitapp.watchkitextension`jit_info_table_chunk_index(chunk=0x7be43200, hp=0x11536384, addr=0x13761be0) + 130 at jit-info.c:200 frame #2: 0x002c54b2 com.xamarin.systemtests.watchkitapp.watchkitextension`jit_info_table_find(table=0x7f29de00, hp=0x11536384, addr=0x13761be0) + 178 at jit-info.c:222 frame #3: 0x002c5255 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_jit_info_table_find_internal(domain=0x7be07e70, addr="\x8bE?? P?O???D$\x04\x93\x88", try_aot=1, allow_trampolines=1) + 133 at jit-info.c:293 frame #4: 0x001bacf6 com.xamarin.systemtests.watchkitapp.watchkitextension`mini_jit_info_table_find_ext(domain=0x7be07e70, addr="\x8bE?? P?O???D$\x04\x93\x88", allow_trampolines=1, out_domain=0x00000000) + 102 at mini-exceptions.c:1020 frame #5: 0x001b95d2 com.xamarin.systemtests.watchkitapp.watchkitextension`mini_jit_info_table_find(domain=0x7be07e70, addr="\x8bE?? P?O???D$\x04\x93\x88", out_domain=0x00000000) + 66 at mini-exceptions.c:1058 frame xamarin#6: 0x001d9b3b com.xamarin.systemtests.watchkitapp.watchkitextension`common_call_trampoline_inner(regs=0xb0c2e860, code="\x8bE?? P?O???D$\x04\x93\x88", m=0x7f17d830, vt=0x00000000, vtable_slot=0x00000000) + 5147 at mini-trampolines.c:784 frame xamarin#7: 0x001d5e1b com.xamarin.systemtests.watchkitapp.watchkitextension`common_call_trampoline(regs=0xb0c2e860, code="\x8bE?? P?O???D$\x04\x93\x88", m=0x7f17d830, vt=0x00000000, vtable_slot=0x00000000) + 91 at mini-trampolines.c:808 frame xamarin#8: 0x001d5db7 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_magic_trampoline(regs=0xb0c2e860, code="\x8bE?? P?O???D$\x04\x93\x88", arg=0x7f17d830, tramp=0x00000000) + 103 at mini-trampolines.c:823 frame xamarin#9: 0x11526188 thread xamarin#19: tid = 0x1e194a5, 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10, name = 'tid_4717' frame #0: 0x05433402 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x053f9f6b libsystem_pthread.dylib`_pthread_cond_wait + 757 frame #2: 0x053fdd0c libsystem_pthread.dylib`pthread_cond_timedwait$UNIX2003 + 71 frame #3: 0x003a25b8 com.xamarin.systemtests.watchkitapp.watchkitextension`mono_os_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=22144) + 264 at mono-os-mutex.h:134 frame #4: 0x003a248f com.xamarin.systemtests.watchkitapp.watchkitextension`mono_coop_cond_timedwait(cond=0x7d33d150, mutex=0x7d33d16c, timeout_ms=22144) + 63 at mono-coop-mutex.h:107 frame #5: 0x003a2260 com.xamarin.systemtests.watchkitapp.watchkitextension`worker_park + 576 at threadpool-ms.c:525 frame xamarin#6: 0x003a14af com.xamarin.systemtests.watchkitapp.watchkitextension`worker_thread(data=0x00000000) + 1199 at threadpool-ms.c:615 frame xamarin#7: 0x003ab783 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper_internal(data=0x7d369d60) + 723 at threads.c:717 frame xamarin#8: 0x003ab4a2 com.xamarin.systemtests.watchkitapp.watchkitextension`start_wrapper(data=0x7d369d60) + 34 at threads.c:764 frame xamarin#9: 0x0045d477 com.xamarin.systemtests.watchkitapp.watchkitextension`inner_start_thread(arg=0xb0a2a738) + 583 at mono-threads-posix.c:92 frame xamarin#10: 0x053f9a26 libsystem_pthread.dylib`_pthread_body + 138 frame xamarin#11: 0x053f999c libsystem_pthread.dylib`_pthread_start + 155 frame xamarin#12: 0x053f6f96 libsystem_pthread.dylib`thread_start + 34
…rebuilds" (xamarin#1018) Duration before: 1,60s Duration after: 1,54s Difference: -0,06s = -3,8% The memory usage is almost identical (down 21kb of a total of ~540mb), but the number of method calls fell significantly: Method calls before: 86.720.379 Method calls after: 74.390.061 Difference: -12.330.318 = -14,2% In the method call summary the call to GetSystemVoidType is #2 before (1072 calls taking 1429ms), after the fix it's way down the list, only called once.
Duration before: 1,60s Duration after: 1,54s Difference: -0,06s = -3,8% Memory usage hardly changed (-21 kb of 540 MB), but the number of method calls shrunk significantly. Method calls before: 86.720.379 Method calls after: 74.390.061 Difference: -12.330.318 = -14,2% The call to `GetSystemVoidType` was #2 on the list of method calls (whens sorted by 'self'), called 1072 times taking 1429 ms each time. After this change it's only called once (and obviously pushed way down the list).
Duration before: 1,60s Duration after: 1,54s Difference: -0,06s = -3,8% Memory usage hardly changed (-21 kb of 540 MB), but the number of method calls shrunk significantly. Method calls before: 86.720.379 Method calls after: 74.390.061 Difference: -12.330.318 = -14,2% The call to `GetSystemVoidType` was #2 on the list of method calls (whens sorted by 'self'), called 1072 times taking 1429 ms each time. After this change it's only called once (and obviously pushed way down the list).
Set the min deployment target to 7.0 for a test to make sure ibtool doesn't complain, and fix the list of expected bundle resources by adding Assets.car to the list. Fixes the following failures: 1. Xamarin.iOS.Tasks.TargetTests.BuildExecutable : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 2. Xamarin.iOS.Tasks.TargetTests.BundleResources : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 3. Xamarin.iOS.Tasks.TargetTests.CleanExecutable : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 4. Xamarin.iOS.Tasks.TargetTests.CopyContentToBundle : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 5. Xamarin.iOS.Tasks.TargetTests.Disappearing_Bundle_Resource : #2 Expected: True But was: False 6. Xamarin.iOS.Tasks.TargetTests.Disappearing_Content : #2 Expected: True But was: False 7. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_DefaultValue : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 8. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_False : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 9. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_True : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 10. Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_NoModifications : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 11. Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_TouchLibraryDll : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 12. Xamarin.iOS.Tasks.TargetTests.UnpackLibraryResources_ExecutableProject : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2
Set the min deployment target to 7.0 for a test to make sure ibtool doesn't complain, and fix the list of expected bundle resources by adding Assets.car to the list. Fixes the following failures: 1. Xamarin.iOS.Tasks.TargetTests.BuildExecutable : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 2. Xamarin.iOS.Tasks.TargetTests.BundleResources : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 3. Xamarin.iOS.Tasks.TargetTests.CleanExecutable : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 4. Xamarin.iOS.Tasks.TargetTests.CopyContentToBundle : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 5. Xamarin.iOS.Tasks.TargetTests.Disappearing_Bundle_Resource : #2 Expected: True But was: False 6. Xamarin.iOS.Tasks.TargetTests.Disappearing_Content : #2 Expected: True But was: False 7. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_DefaultValue : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 8. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_False : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 9. Xamarin.iOS.Tasks.TargetTests.OptimizePngs_True : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 10. Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_NoModifications : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 11. Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_TouchLibraryDll : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2 12. Xamarin.iOS.Tasks.TargetTests.UnpackLibraryResources_ExecutableProject : #RunTarget-ErrorCount ibtool exited with code 1 Compiling IB documents for earlier than iOS 7 is no longer supported. Expected: 0 But was: 2
commit xamarin/maccore@14c3eca Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Nov 24 09:53:13 2017 +0100 Bump mac-api-docs. commit xamarin/mac-api-docs@057bb83 Author: Timothy Risi <[email protected]> Date: Thu Nov 23 23:52:21 2017 -0900 Docs should also be generated for Xamarin.Mac (#2) * Docs should also be generated for Xamarin.Mac * Remove the push target
commit xamarin/maccore@14c3eca Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Nov 24 09:53:13 2017 +0100 Bump mac-api-docs. commit xamarin/mac-api-docs@057bb83 Author: Timothy Risi <[email protected]> Date: Thu Nov 23 23:52:21 2017 -0900 Docs should also be generated for Xamarin.Mac (#2) * Docs should also be generated for Xamarin.Mac * Remove the push target
* [linker] Remove non-bitcode compatible code, and show a warning. Remove code not currently compatible with bitcode and replace it with an exception instead (otherwise we'll assert at runtime). Also show a warning when we detect this. This is quite helpful when looking at watch device test runs to filter out failures we already know about. This fixes point #2 in #4763. * Improve documentation. * Simplify linker code by using a substep. * Fix whitespace issues. * Improve reporting. * Add support for reporting more than one MT2105 at the same time when making the errors instead of warnings. * Only report MT2105 for methods that haven't been linked away. * Format the error message nicer for properties. * Tweak a bit for warning tests to pass. * Use ExceptionalSubStep to provide better error information. * Adjust where linker warnings/errors are reported from to avoid a NullReferenceException.
* [linker] Remove non-bitcode compatible code, and show a warning. Remove code not currently compatible with bitcode and replace it with an exception instead (otherwise we'll assert at runtime). Also show a warning when we detect this. This is quite helpful when looking at watch device test runs to filter out failures we already know about. This fixes point #2 in #4763. * Improve documentation. * Simplify linker code by using a substep. * Fix whitespace issues. * Improve reporting. * Add support for reporting more than one MT2105 at the same time when making the errors instead of warnings. * Only report MT2105 for methods that haven't been linked away. * Format the error message nicer for properties. * Tweak a bit for warning tests to pass. * Use ExceptionalSubStep to provide better error information. * Adjust where linker warnings/errors are reported from to avoid a NullReferenceException.
… project. (#7842) Fixes: > MyWatchKit2IntentsExtension/IntentHandler.cs(36): warning MT4174: Unable to locate the block to delegate conversion method for the method MyWatchKit2IntentsExtension.IntentHandler.ResolveRecipients's parameter #2. [MyWatchKit2Extension/MyWatchKit2Extension.csproj] The method signature probably changed from a beta release to the corresponding stable release, and this method was never updated.
…line. Fixes this startup crash in link all: 2020-08-26 19:56:03.936330+0200 link all[45665:6121665] Could not register the assembly 'link all': ObjCRuntime.RuntimeException: The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the parameter 'value' in the method LinkAll.Attributes.SmartConsumer.SetSmartEnumValue. at Registrar.Registrar.ObjCMethod.get_NativeParameters() at Registrar.Registrar.ComputeSignature(Type DeclaringType, MethodBase Method, ObjCMember member, Boolean isCategoryInstance, Boolean isBlockSignature) at Registrar.Registrar.ObjCMethod.ComputeSignature() at Registrar.Registrar.ObjCMethod.get_Signature() at Registrar.Registrar.ObjCMethod.get_Trampoline() at Registrar.DynamicRegistrar.RegisterMethod(ObjCMethod method) at Registrar.DynamicRegistrar.OnRegisterType(ObjCType type) at Registrar.Registrar.RegisterTypeUnsafe(Type type, List`1& exceptions) at Registrar.Registrar.RegisterAssembly(Assembly assembly) 2020-08-26 19:56:03.939327+0200 link all[45665:6121665] System.AggregateException: One or more errors occurred. (The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the return value in the method LinkAll.Attributes.SmartConsumer.GetSmartEnumValue.) (The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the return value in the method LinkAll.Attributes.SmartConsumer.GetSmartEnumValue.) (The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the parameter 'value' in the method LinkAll.Attributes.SmartConsumer.SetSmartEnumValue.) ---> ObjCRuntime.RuntimeException: The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the return value in the method LinkAll.Attributes.SmartConsumer.GetSmartEnumValue. at Registrar.Registrar.ObjCMethod.get_NativeReturnType() at Registrar.Registrar.ComputeSignature(Type DeclaringType, MethodBase Method, ObjCMember member, Boolean isCategoryInstance, Boolean isBlockSignature) at Registrar.Registrar.ObjCMethod.ComputeSignature() at Registrar.Registrar.ObjCMethod.ValidateSignature(List`1& exceptions) --- End of inner exception stack trace --- ---> (Inner Exception #1) ObjCRuntime.RuntimeException: The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the return value in the method LinkAll.Attributes.SmartConsumer.GetSmartEnumValue. at Registrar.Registrar.ObjCMethod.get_NativeReturnType() at Registrar.Registrar.VerifyInSdk(List`1& exceptions, ObjCMethod method) at Registrar.Registrar.ObjCType.Add(ObjCMethod method, List`1& exceptions) at Registrar.Registrar.RegisterTypeUnsafe(Type type, List`1& exceptions)<--- ---> (Inner Exception #2) ObjCRuntime.RuntimeException: The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the parameter 'value' in the method LinkAll.Attributes.SmartConsumer.SetSmartEnumValue. at Registrar.Registrar.ObjCMethod.get_NativeParameters() at Registrar.Registrar.ComputeSignature(Type DeclaringType, MethodBase Method, ObjCMember member, Boolean isCategoryInstance, Boolean isBlockSignature) at Registrar.Registrar.ObjCMethod.ComputeSignature() at Registrar.Registrar.ObjCMethod.ValidateSignature(List`1& exceptions)<--- ================================================================= Native Crash Reporting ================================================================= Got a abrt while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= ================================================================= Native stacktrace: ================================================================= 0x10d57eb0e - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_dump_native_crash_info 0x10d52b437 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_handle_native_crash 0x10d57e365 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : sigabrt_signal_handler 0x7fff51c005fd - /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 13.5.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libsystem_platform.dylib : _sigtramp 0x0 - Unknown 0x7fff51af0b7c - /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 13.5.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libsystem_c.dylib : abort 0x10d32478f - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libxamarin-debug.dylib : xamarin_unhandled_exception_handler 0x10d5eef68 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_invoke_unhandled_exception_hook 0x10d52ade0 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_handle_exception_internal 0x10d5296c1 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_handle_exception 0x10d579582 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_amd64_throw_exception 0x10d91b5b0 - Unknown 0x10d3244eb - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libxamarin-debug.dylib : xamarin_process_managed_exception 0x10d324367 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libxamarin-debug.dylib : xamarin_process_managed_exception_gchandle 0x10d336851 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libxamarin-debug.dylib : xamarin_main 0x10d217ced - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/link all : main 0x7fff51a231fd - /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 13.5.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libdyld.dylib : start
…line. (#9537) This also means: * Adding the ExceptionalSubStep step to the build. * Adding a few workarounds for missing/different linker API. This fixes this startup crash in link all: 2020-08-26 19:56:03.936330+0200 link all[45665:6121665] Could not register the assembly 'link all': ObjCRuntime.RuntimeException: The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the parameter 'value' in the method LinkAll.Attributes.SmartConsumer.SetSmartEnumValue. at Registrar.Registrar.ObjCMethod.get_NativeParameters() at Registrar.Registrar.ComputeSignature(Type DeclaringType, MethodBase Method, ObjCMember member, Boolean isCategoryInstance, Boolean isBlockSignature) at Registrar.Registrar.ObjCMethod.ComputeSignature() at Registrar.Registrar.ObjCMethod.get_Signature() at Registrar.Registrar.ObjCMethod.get_Trampoline() at Registrar.DynamicRegistrar.RegisterMethod(ObjCMethod method) at Registrar.DynamicRegistrar.OnRegisterType(ObjCType type) at Registrar.Registrar.RegisterTypeUnsafe(Type type, List`1& exceptions) at Registrar.Registrar.RegisterAssembly(Assembly assembly) 2020-08-26 19:56:03.939327+0200 link all[45665:6121665] System.AggregateException: One or more errors occurred. (The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the return value in the method LinkAll.Attributes.SmartConsumer.GetSmartEnumValue.) (The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the return value in the method LinkAll.Attributes.SmartConsumer.GetSmartEnumValue.) (The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the parameter 'value' in the method LinkAll.Attributes.SmartConsumer.SetSmartEnumValue.) ---> ObjCRuntime.RuntimeException: The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the return value in the method LinkAll.Attributes.SmartConsumer.GetSmartEnumValue. at Registrar.Registrar.ObjCMethod.get_NativeReturnType() at Registrar.Registrar.ComputeSignature(Type DeclaringType, MethodBase Method, ObjCMember member, Boolean isCategoryInstance, Boolean isBlockSignature) at Registrar.Registrar.ObjCMethod.ComputeSignature() at Registrar.Registrar.ObjCMethod.ValidateSignature(List`1& exceptions) --- End of inner exception stack trace --- ---> (Inner Exception #1) ObjCRuntime.RuntimeException: The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the return value in the method LinkAll.Attributes.SmartConsumer.GetSmartEnumValue. at Registrar.Registrar.ObjCMethod.get_NativeReturnType() at Registrar.Registrar.VerifyInSdk(List`1& exceptions, ObjCMethod method) at Registrar.Registrar.ObjCType.Add(ObjCMethod method, List`1& exceptions) at Registrar.Registrar.RegisterTypeUnsafe(Type type, List`1& exceptions)<--- ---> (Inner Exception #2) ObjCRuntime.RuntimeException: The registrar can't convert from 'LinkAll.Attributes.SmartEnum' to 'Foundation.NSString' for the parameter 'value' in the method LinkAll.Attributes.SmartConsumer.SetSmartEnumValue. at Registrar.Registrar.ObjCMethod.get_NativeParameters() at Registrar.Registrar.ComputeSignature(Type DeclaringType, MethodBase Method, ObjCMember member, Boolean isCategoryInstance, Boolean isBlockSignature) at Registrar.Registrar.ObjCMethod.ComputeSignature() at Registrar.Registrar.ObjCMethod.ValidateSignature(List`1& exceptions)<--- ================================================================= Native Crash Reporting ================================================================= Got a abrt while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= ================================================================= Native stacktrace: ================================================================= 0x10d57eb0e - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_dump_native_crash_info 0x10d52b437 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_handle_native_crash 0x10d57e365 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : sigabrt_signal_handler 0x7fff51c005fd - /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 13.5.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libsystem_platform.dylib : _sigtramp 0x0 - Unknown 0x7fff51af0b7c - /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 13.5.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libsystem_c.dylib : abort 0x10d32478f - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libxamarin-debug.dylib : xamarin_unhandled_exception_handler 0x10d5eef68 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_invoke_unhandled_exception_hook 0x10d52ade0 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_handle_exception_internal 0x10d5296c1 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_handle_exception 0x10d579582 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libmonosgen-2.0.dylib : mono_amd64_throw_exception 0x10d91b5b0 - Unknown 0x10d3244eb - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libxamarin-debug.dylib : xamarin_process_managed_exception 0x10d324367 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libxamarin-debug.dylib : xamarin_process_managed_exception_gchandle 0x10d336851 - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/libxamarin-debug.dylib : xamarin_main 0x10d217ced - /Users/rolf/Library/Developer/CoreSimulator/Devices/289E372A-501C-4499-A1A6-59C5B3B6A9AE/data/Containers/Bundle/Application/5CB344E3-EC61-4720-92E6-4C8B91A67A85/link all.app/link all : main 0x7fff51a231fd - /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 13.5.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/libdyld.dylib : start
…10309) **Example #1.** Signing a framework binary is the **same** thing as signing the framework directory. ``` $ codesign -v --force --timestamp=none --sign - bin/iPhone/Release/xcf_ios.app//Frameworks/lame.framework/lame bin/iPhone/Release/xcf_ios.app//Frameworks/lame.framework/lame: replacing existing signature bin/iPhone/Release/xcf_ios.app//Frameworks/lame.framework/lame: signed bundle with Mach-O thin (arm64) [io.sourceforge.lame] $ codesign -v --force --timestamp=none --sign - bin/iPhone/Release/xcf_ios.app//Frameworks/lame.framework bin/iPhone/Release/xcf_ios.app//Frameworks/lame.framework: replacing existing signature bin/iPhone/Release/xcf_ios.app//Frameworks/lame.framework: signed bundle with Mach-O thin (arm64) [io.sourceforge.lame] ``` Nice right ? Pretty much until... **Example #2.** Signing a framework binary is **NOT** the **same** thing as signing the framework directory. ``` $ codesign -v --force --timestamp=none --sign - bin/iPhone/Release/xcf_ios.app//Frameworks/flac.framework/flac bin/iPhone/Release/xcf_ios.app//Frameworks/flac.framework/flac: replacing existing signature bin/iPhone/Release/xcf_ios.app//Frameworks/flac.framework/flac: signed Mach-O thin (arm64) [flac-55554944583d2f02282c33d8bfed082daa857e30] $ codesign -v --force --timestamp=none --sign - bin/iPhone/Release/xcf_ios.app//Frameworks/flac.framework bin/iPhone/Release/xcf_ios.app//Frameworks/flac.framework: replacing existing signature bin/iPhone/Release/xcf_ios.app//Frameworks/flac.framework: signed bundle with Mach-O thin (arm64) [org.xiph.flac] ``` In this case signing the binary `flac` does not produce the `_CodeSignature` directory and fails our msbuild Codesign task The fix is to detect if we're signing a framework like `A.framework/A` and change this to sign `A.framework` as this will always work.
We were missing
initByReferencingFile:
which initializesthe image object lazily.
The non working use case was:
Here the constructor is calling
initWithContentsOfFile:
which willnot load the right icon from the
.icns
file.That fixes https://bugzilla.xamarin.com/show_bug.cgi?id=40349.