Приложение Xamarin для iOS SIGSEGV

Я получаю случайные ошибки SIGSEGV, как показано ниже в моем приложении (C# Xamarin iOS-приложение с последней версией Xamarin Studio=5.8.3, Xamarin.iOS=8.9.1.3

Похоже, что в UIKit произошел сбой, а из моего собственного приложения "ObymobiMobileAppiOS" это просто в "main".

Что это за проблема? Как я могу получить больше информации или отладить ее?

Я могу воспроизвести его с помощью приложения в течение 5 минут.

Трассировки стека:

at <unknown> <0xffffffff>
at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) <0xffffffff>
at UIKit.UIApplication.Main (string[],intptr,intptr) [0x00005] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:62
at UIKit.UIApplication.Main (string[],string,string) [0x0001c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:45
at Obymobi.Mobile.App.iOS.Application.Main (string[]) [0x000b9] in /Users/billbatchelor/Documents/Mobile Development/AllInOne/Obymobi.Xamarin/Obymobi.Mobile.App.iOS/Main.cs:52
at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>

Родная трассировка стека:

0   ObymobiMobileAppiOS                 0x00000001024ef9ac mono_handle_native_sigsegv + 264
1   ObymobiMobileAppiOS                 0x00000001024f97cc mono_sigsegv_signal_handler + 316
2   libsystem_platform.dylib            0x000000019890895c _sigtramp + 68
3   UIKit                               0x000000018b535540 <redacted> + 216
4   UIKit                               0x000000018b535030 <redacted> + 452
5   UIKit                               0x000000018b534e38 <redacted> + 216
6   UIKit                               0x000000018b534d4c <redacted> + 468
7   UIKit                               0x000000018b48fd8c <redacted> + 264
8   UIKit                               0x000000018b32ca2c <redacted> + 700
9   UIKit                               0x000000018b325f68 <redacted> + 684
10  UIKit                               0x000000018b2f918c <redacted> + 264
11  UIKit                               0x000000018b59a324 <redacted> + 15424
12  UIKit                               0x000000018b2f76a0 <redacted> + 1716
13  CoreFoundation                      0x0000000186870240 <redacted> + 24
14  CoreFoundation                      0x000000018686f4e4 <redacted> + 264
15  CoreFoundation                      0x000000018686d594 <redacted> + 712
16  CoreFoundation                      0x00000001867992d4 CFRunLoopRunSpecific + 396
17  GraphicsServices                    0x000000018ffaf6fc GSEventRunModal + 168
18  UIKit                               0x000000018b35efac UIApplicationMain + 1488
19  ObymobiMobileAppiOS                 0x0000000100b61f28 wrapper_managed_to_native_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr + 344
20  ObymobiMobileAppiOS                 0x00000001005387c0 UIKit_UIApplication_Main_string___intptr_intptr + 48
21  ObymobiMobileAppiOS                 0x000000010053865c UIKit_UIApplication_Main_string___string_string + 188
22  ObymobiMobileAppiOS                 0x000000010009c654 Obymobi_Mobile_App_iOS_Application_Main_string__ + 1508
23  ObymobiMobileAppiOS                 0x0000000101007130 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 160
24  ObymobiMobileAppiOS                 0x00000001024fb88c mono_jit_runtime_invoke + 1260
25  ObymobiMobileAppiOS                 0x00000001025511e0 mono_runtime_invoke + 128
26  ObymobiMobileAppiOS                 0x00000001025553c4 mono_runtime_exec_main + 404
27  ObymobiMobileAppiOS                 0x00000001025c6a50 xamarin_main + 1812
28  ObymobiMobileAppiOS                 0x00000001024b9688 main + 96
29  libdyld.dylib                       0x000000019875aa08 <redacted> + 4


=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries used by your application.

Обновление Вот еще один пример SIGSEGV, которые я получаю (это было на симуляторе), которые не были "отредактированы":-

Есть еще идеи, как найти проблему? Или это возможная ошибка в Xamarin?

Родная трассировка стека:

0   ObymobiMobileAppiOS                 0x0011d4f7 mono_handle_native_sigsegv + 311
1   ObymobiMobileAppiOS                 0x0014c505 mono_sigsegv_signal_handler + 213
2   libsystem_platform.dylib            0x08c8003b _sigtramp + 43
3   ???                                 0xffffffff 0x0 + 4294967295
4   VectorKit                           0x10663fe9 -[VKTileProvider tileSource:didFetchTile:forKey:] + 105
5   VectorKit                           0x1067140e -[VKTileSource fetchedTile:forKey:] + 62
6   VectorKit                           0x106c2617 -[VKTileSetBackedTileSource fetchedTile:forKey:] + 247
7   VectorKit                           0x106705b5 -[VKTileSource _fetchedTile:] + 309
8   VectorKit                           0x10671985 __49-[VKTileSource decodeData:downloadKey:sourceKey:]_block_invoke_2 + 181
9   libdispatch.dylib                   0x08930d8a _dispatch_call_block_and_release + 15
10  libdispatch.dylib                   0x0894decf _dispatch_client_callout + 14
11  libdispatch.dylib                   0x0893602e _dispatch_queue_drain + 411
12  libdispatch.dylib                   0x08935d33 _dispatch_queue_invoke + 197
13  libdispatch.dylib                   0x0893820b _dispatch_root_queue_drain + 428
14  libdispatch.dylib                   0x089393e7 _dispatch_worker_thread3 + 108
15  libsystem_pthread.dylib             0x08c8d1da _pthread_wqthread + 724
16  libsystem_pthread.dylib             0x08c8ae2e start_wqthread + 30

3 ответа

I came across the same problem. In my case I found some solutions:

  1. If project referenced to wrapper above native library. Check that wrapper and your project have the same architecture - Classic API or Unified API. 1.1 Try to rebuild native project. 1.2 Remove project wrapper from solution and add reference only to output library.

  2. Sometimes, native object are destroyed earlier than.NET. In this case,.NET object have exceptions inside and this error cannot catch with try-catch. Need to dispose objects correctly.

  3. Try to look crash report inside xcode to get more detailed information.

Я столкнулся с этой проблемой при использовании UIDocumentInteractionController. Я использовал экземпляр этого класса в качестве локального параметра, и сборщик мусора сбрасывал этот экземпляр еще до завершения выполнения функции. Принятие этого экземпляра в глобальном масштабе решило мою проблему.

Версии Xamarin одинаковы для OS X и Windows? У меня была похожая ошибка. Когда я обновил Xamarin, все было хорошо.

Другие вопросы по тегам