简体   繁体   中英

Xamarin iOS app SIGSEGV

I am getting occasional SIGSEGV errors like below in my app (c# Xamarin iOS app with latest version of Xamarin Studio=5.8.3, Xamarin.iOS=8.9.1.3

It looks like in crashed in UIKit and from my own app "ObymobiMobileAppiOS" it's just in "main".

What kind of problem it is? How can I get more info or debug it?

I can reproduce it by using the app for about 5 mins.

Stacktrace:

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>

Native stacktrace:

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.

Update Here is another example of SIGSEGVs I get (this was on simulator) which doesn't have "redacted":-

Any more ideas how to find the problem? Or is it a possible bug in Xamarin?

Native stacktrace:

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

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.

I faced this problem while using UIDocumentInteractionController. I was using instance of this class as a local parameter and garbage collector was flushing that instance even before the function execution completes. Taking that instance to Global scope solved my problem.

Are the version of Xamarin equal on OS X and Windows? I had similar error. When I updated Xamarin, everything was fine.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM