1

私はモノタッチにかなり慣れていないので、困惑するエラーが発生します。スライディング スタイル ビュー ( https://github.com/edgecase/ECSlidingViewController ) 用の Objective-C ライブラリへのバインディングを作成し、そのライブラリの使用中にネイティブ コードを実行している間に SIGSEV を取得しています (具体的には、発生します)。スライドコントローラーから下のビューを表示しようとすると)。

スタックトレース:

at (wrapper managed-to-native) System.Runtime.InteropServices.GCHandle.CheckCurrentDomain (int) <IL 0x00021, 0xffffffff>
at System.Runtime.InteropServices.GCHandle.op_Explicit (intptr) [0x0001b] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Runtime.InteropServices/GCHandle.cs:124
at System.Runtime.InteropServices.GCHandle.FromIntPtr (intptr) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Runtime.InteropServices/GCHandle.cs:169
at MonoTouch.ObjCRuntime.BlockDescriptor.CopyHelper (MonoTouch.ObjCRuntime.BlockLiteral*,MonoTouch.ObjCRuntime.BlockLiteral*) [0x00000] in /Developer/MonoTouch/Source/monotouch/src/shared/ObjCRuntime/Blocks.cs:54
at (wrapper native-to-managed) MonoTouch.ObjCRuntime.BlockDescriptor.CopyHelper (MonoTouch.ObjCRuntime.BlockLiteral*,MonoTouch.ObjCRuntime.BlockLiteral*) <IL 0x0001e, 0xffffffff>
at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging.void_objc_msgSendSuper_int_IntPtr_IntPtr (intptr,intptr,int,intptr,intptr) <IL 0x00028, 0xffffffff>
at Enriquez.ECSlidingViewController.ECSlidingViewController.AnchorTopView (Enriquez.ECSlidingViewController.ECSide,Enriquez.ECSlidingViewController.ECAnimations,Enriquez.ECSlidingViewController.ECOnComplete) <IL 0x00097, 0x002ef>
at (wrapper runtime-invoke) <Module>.runtime_invoke_void__this___int_object_object (object,intptr,intptr,intptr) <IL 0x00066, 0xffffffff>
at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging.void_objc_msgSendSuper_int (intptr,intptr,int) <IL 0x00025, 0xffffffff>
at Enriquez.ECSlidingViewController.ECSlidingViewController.AnchorTopView (Enriquez.ECSlidingViewController.ECSide) <IL 0x0002d, 0x0009f>
at (wrapper runtime-invoke) <Module>.runtime_invoke_void__this___int (object,intptr,intptr,intptr) <IL 0x00054, 0xffffffff>
at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) <IL 0x0009f, 0xffffffff>
at MonoTouch.UIKit.UIApplication.Main (string[],string,string) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38
at FanApp.Application.Main (string[]) [0x00000] in /Users/markrubeo/Projects/FanApp/MonoTouch/Test Stuff/FanApp/Fan App/FanApp/Main.cs:17
at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff>

ネイティブ スタック トレース:

0   FanApp                              0x00098adc mono_handle_native_sigsegv + 284
1   FanApp                              0x0000c3b8 mono_sigsegv_signal_handler + 248
2   libsystem_c.dylib                   0x99be28cb _sigtramp + 43
3   ???                                 0xffffffff 0x0 + 4294967295
4   FanApp                              0x00112aba GCHandle_CheckCurrentDomain + 26
5   ???                                 0x0d86e766 0x0 + 226944870
6   ???                                 0x0d86e668 0x0 + 226944616
7   ???                                 0x0d86e590 0x0 + 226944400
8   ???                                 0x0d86e4f8 0x0 + 226944248
9   ???                                 0x0d86db7c 0x0 + 226941820
10  libsystem_sim_blocks.dylib          0x0243acb6 _Block_call_copy_helper + 29
11  libsystem_sim_blocks.dylib          0x0243b73f _Block_copy_internal + 228
12  FanApp                              0x00004a91 -[ECSlidingViewController anchorTopViewTo:animations:onComplete:] + 545
13  ???                                 0x0d86e458 0x0 + 226944088
14  ???                                 0x0d86d2f0 0x0 + 226939632
15  ???                                 0x0d86d505 0x0 + 226940165
16  FanApp                              0x00010782 mono_jit_runtime_invoke + 722
17  FanApp                              0x00173c5e mono_runtime_invoke + 126
18  FanApp                              0x002169a6 monotouch_trampoline + 3686
19  FanApp                              0x00004864 -[ECSlidingViewController anchorTopViewTo:] + 84
20  ???                                 0x08618c4c 0x0 + 140610636
21  ???                                 0x06bfbd28 0x0 + 113229096
22  ???                                 0x08618bb0 0x0 + 140610480
23  FanApp                              0x00010782 mono_jit_runtime_invoke + 722
24  FanApp                              0x00173c5e mono_runtime_invoke + 126
25  FanApp                              0x002169a6 monotouch_trampoline + 3686
26  FanApp                              0x00004700 -[ECSlidingViewController updateTopViewHorizontalCenterWithRecognizer:] + 1680
27  UIKit                               0x00bede29 _UIGestureRecognizerSendActions + 143
28  UIKit                               0x00bed133 -[UIGestureRecognizer _updateGestureWithEvent:] + 379
29  UIKit                               0x00bee3bf -[UIGestureRecognizer _delayedUpdateGesture] + 46
30  UIKit                               0x00bf0a21 ___UIGestureRecognizerUpdate_block_invoke_0541 + 57
31  UIKit                               0x00bf097c _UIGestureRecognizerApplyBlocksToArray + 277
32  UIKit                               0x00be93d7 _UIGestureRecognizerUpdate + 1026
33  UIKit                               0x0094e1a2 -[UIWindow _sendGesturesForEvent:] + 1121
34  UIKit                               0x0094e532 -[UIWindow sendEvent:] + 93
35  UIKit                               0x00934dc4 -[UIApplication sendEvent:] + 464
36  UIKit                               0x00928634 _UIApplicationHandleEvent + 8196
37  GraphicsServices                    0x025f5ef5 PurpleEventCallback + 1274
38  CoreFoundation                      0x01c0f195 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
39  CoreFoundation                      0x01b73ff2 __CFRunLoopDoSource1 + 146
40  CoreFoundation                      0x01b728da __CFRunLoopRun + 2218
41  CoreFoundation                      0x01b71d84 CFRunLoopRunSpecific + 212
42  CoreFoundation                      0x01b71c9b CFRunLoopRunInMode + 123
43  GraphicsServices                    0x025f47d8 GSEventRunModal + 190
44  GraphicsServices                    0x025f488a GSEventRun + 103
45  UIKit                               0x00926626 UIApplicationMain + 1163
46  ???                                 0x0861397d 0x0 + 140589437
47  ???                                 0x085974f8 0x0 + 140080376
48  ???                                 0x08597100 0x0 + 140079360
49  ???                                 0x08597256 0x0 + 140079702
50  FanApp                              0x00010782 mono_jit_runtime_invoke + 722
51  FanApp                              0x00173c5e mono_runtime_invoke + 126
52  FanApp                              0x00177e54 mono_runtime_exec_main + 420
53  FanApp                              0x0017d245 mono_runtime_run_main + 725
54  FanApp                              0x0006de15 mono_jit_exec + 149
55  FanApp                              0x0020bc04 main + 1988
56  FanApp                              0x00009685 start + 53
57  ???                                 0x00000004 0x0 + 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.
=================================================================

これに関する奇妙な部分は、iOS シミュレーターでアプリを実行したときにのみ発生することです。デバイスでは、すべて正常に動作しているように見えます。

誰が何が起こっているのか手がかりを持っていますか?

ETA: クラッシュ レポート:

Process:         FanApp [50509]
Path:            /Users/USER/Library/Application Support/iPhone Simulator/*/
Identifier:      FanApp
Version:         ???
Code Type:       X86 (Native)
Parent Process:  launchd [151]
User ID:         501

Date/Time:       2013-05-22 17:16:55.967 -0400
OS Version:      Mac OS X 10.8.3 (12D78)
Report Version:  10

Crashed Thread:  0

Exception Type:  EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000008

VM Regions Near 0x8:
    --> __PAGEZERO             0000000000000000-0000000000001000 [    4K] ---/--- SM=NUL  /Users/USER/Library/Application Support/iPhone Simulator/*/FanApp.app/FanApp
    __TEXT                 0000000000001000-00000000002cd000 [ 2864K] r-x/rwx SM=COW  /Users/USER/Library/Application Support/iPhone Simulator/*/FanApp.app/FanApp

Application Specific Information:
iPhone Simulator 369.2, iPhone OS 5.1 (iPhone/9B176)

abort() called

Thread 0 Crashed:
0   libsystem_kernel.dylib          0x94925a6a __pthread_kill + 10
1   libsystem_c.dylib               0x99bf7b2f pthread_kill + 101
2   libsystem_c.dylib               0x99c2e4ec abort + 168
3   FanApp                          0x00098d1a mono_handle_native_sigsegv + 858
4   FanApp                          0x0000c3b8 mono_sigsegv_signal_handler + 248
5   libsystem_c.dylib               0x99be28cb _sigtramp + 43
6   ???                             0xffffffff 0 + 4294967295
7   FanApp                          0x0000c2c0 mono_sigill_signal_handler + 64
8   FanApp                          0x00112aba GCHandle_CheckCurrentDomain + 26
9   ???                             0x0d86e766 0 + 226944870
10  ???                             0x0d86e668 0 + 226944616
11  ???                             0x0d86e590 0 + 226944400
12  ???                             0x0d86e4f8 0 + 226944248
13  ???                             0x0d86db7c 0 + 226941820
14  libsystem_sim_blocks.dylib      0x0243acb6 _Block_call_copy_helper + 29
15  libsystem_sim_blocks.dylib      0x0243b73f _Block_copy_internal + 228
16  FanApp                          0x00004a91 -[ECSlidingViewController anchorTopViewTo:animations:onComplete:] + 545
17  ???                             0x0d86e458 0 + 226944088
18  ???                             0x0d86d2f0 0 + 226939632
19  ???                             0x0d86d505 0 + 226940165
20  FanApp                          0x00010782 mono_jit_runtime_invoke + 722
21  FanApp                          0x00173c5e mono_runtime_invoke + 126
22  FanApp                          0x002169a6 monotouch_trampoline + 3686
23  FanApp                          0x00004864 -[ECSlidingViewController anchorTopViewTo:] + 84
24  ???                             0x08618c4c 0 + 140610636
25  ???                             0x06bfbd28 0 + 113229096
26  ???                             0x08618bb0 0 + 140610480
27  FanApp                          0x00010782 mono_jit_runtime_invoke + 722
28  FanApp                          0x00173c5e mono_runtime_invoke + 126
29  FanApp                          0x002169a6 monotouch_trampoline + 3686
30  FanApp                          0x00004700 -[ECSlidingViewController updateTopViewHorizontalCenterWithRecognizer:] + 1680
31  UIKit                           0x00bede29 _UIGestureRecognizerSendActions + 143
32  UIKit                           0x00bed133 -[UIGestureRecognizer _updateGestureWithEvent:] + 379
33  UIKit                           0x00bee3bf -[UIGestureRecognizer _delayedUpdateGesture] + 46
34  UIKit                           0x00bf0a21 ___UIGestureRecognizerUpdate_block_invoke_0541 + 57
35  UIKit                           0x00bf097c _UIGestureRecognizerApplyBlocksToArray + 277
36  UIKit                           0x00be93d7 _UIGestureRecognizerUpdate + 1026
37  UIKit                           0x0094e1a2 -[UIWindow _sendGesturesForEvent:] + 1121
38  UIKit                           0x0094e532 -[UIWindow sendEvent:] + 93
39  UIKit                           0x00934dc4 -[UIApplication sendEvent:] + 464
40  UIKit                           0x00928634 _UIApplicationHandleEvent + 8196
41  GraphicsServices                0x025f5ef5 PurpleEventCallback + 1274
42  CoreFoundation                  0x01c0f195 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
43  CoreFoundation                  0x01b73ff2 __CFRunLoopDoSource1 + 146
44  CoreFoundation                  0x01b728da __CFRunLoopRun + 2218
45  CoreFoundation                  0x01b71d84 CFRunLoopRunSpecific + 212
46  CoreFoundation                  0x01b71c9b CFRunLoopRunInMode + 123
47  GraphicsServices                0x025f47d8 GSEventRunModal + 190
48  GraphicsServices                0x025f488a GSEventRun + 103
49  UIKit                           0x00926626 UIApplicationMain + 1163
50  ???                             0x0861397d 0 + 140589437
51  ???                             0x085974f8 0 + 140080376
52  ???                             0x08597100 0 + 140079360
53  ???                             0x08597256 0 + 140079702
54  FanApp                          0x00010782 mono_jit_runtime_invoke + 722
55  FanApp                          0x00173c5e mono_runtime_invoke + 126
56  FanApp                          0x00177e54 mono_runtime_exec_main + 420
57  FanApp                          0x0017d245 mono_runtime_run_main + 725
58  FanApp                          0x0006de15 mono_jit_exec + 149
59  FanApp                          0x0020bc04 main + 1988
60  FanApp                          0x00009685 start + 53

Thread 1:
0   libsystem_kernel.dylib          0x949269ae kevent + 10
1   libdispatch.dylib               0x02474372 _dispatch_mgr_invoke + 918
2   libdispatch.dylib               0x02472be1 _dispatch_mgr_thread + 53

Thread 2:
0   libsystem_kernel.dylib          0x94925b3e __recvfrom + 10
1   libsystem_c.dylib               0x99c80bbf recv$UNIX2003 + 54
2   FanApp                          0x0020d021 recv_uninterrupted + 81
3   FanApp                          0x0020e88b monotouch_process_connection + 107
4   FanApp                          0x0020ddef monotouch_connect_wifi + 3279
5   FanApp                          0x0020cd07 monotouch_configure_debugging + 2311
6   FanApp                          0x0020bce5 -[CocoaThreadInitializer entryPoint:] + 133
7   Foundation                      0x005da4d6 -[NSThread main] + 76
8   Foundation                      0x005da447 __NSThread__main__ + 1258
9   libsystem_c.dylib               0x99bf65b7 _pthread_start + 344
10  libsystem_c.dylib               0x99be0d4e thread_start + 34

Thread 3:
0   libsystem_kernel.dylib          0x949237d2 mach_msg_trap + 10
1   libsystem_kernel.dylib          0x94922cb0 mach_msg + 68
2   FanApp                          0x000de03a mach_exception_thread + 90
3   FanApp                          0x0020816d GC_start_routine + 93
4   libsystem_c.dylib               0x99bf65b7 _pthread_start + 344
5   libsystem_c.dylib               0x99be0d4e thread_start + 34

Thread 4:
0   libsystem_kernel.dylib          0x9492380e semaphore_wait_trap + 10
1   FanApp                          0x001e91ea mono_sem_wait + 26
2   FanApp                          0x00112d2a finalizer_thread + 74
3   FanApp                          0x001aeca6 start_wrapper + 422
4   FanApp                          0x001e0c6a thread_start_routine + 154
5   FanApp                          0x0020816d GC_start_routine + 93
6   libsystem_c.dylib               0x99bf65b7 _pthread_start + 344
7   libsystem_c.dylib               0x99be0d4e thread_start + 34

Thread 5:
0   libsystem_kernel.dylib          0x94925b3e __recvfrom + 10
1   libsystem_c.dylib               0x99c80bbf recv$UNIX2003 + 54
2   FanApp                          0x0020d021 recv_uninterrupted + 81
3   FanApp                          0x0020d104 sdb_recv + 52
4   FanApp                          0x000af49a debugger_thread + 186
5   FanApp                          0x001e0c6a thread_start_routine + 154
6   FanApp                          0x0020816d GC_start_routine + 93
7   libsystem_c.dylib               0x99bf65b7 _pthread_start + 344
8   libsystem_c.dylib               0x99be0d4e thread_start + 34

Thread 6:
0   libsystem_kernel.dylib          0x94925c72 __semwait_signal + 10
1   libsystem_c.dylib               0x99c80a55 nanosleep$UNIX2003 + 189
2   libsystem_c.dylib               0x99c8091e usleep$UNIX2003 + 60
3   FanApp                          0x00211342 monotouch_pump_gc + 50
4   libsystem_c.dylib               0x99bf65b7 _pthread_start + 344
5   libsystem_c.dylib               0x99be0d4e thread_start + 34

Thread 7:: WebThread
0   libsystem_kernel.dylib          0x949237d2 mach_msg_trap + 10
1   libsystem_kernel.dylib          0x94922cb0 mach_msg + 68
2   CoreFoundation                  0x01c0f10a __CFRunLoopServiceMachPort + 186
3   CoreFoundation                  0x01b725d5 __CFRunLoopRun + 1445
4   CoreFoundation                  0x01b71d84 CFRunLoopRunSpecific + 212
5   CoreFoundation                  0x01b71c9b CFRunLoopRunInMode + 123
6   WebCore                         0x03933420 RunWebThread(void*) + 560
7   libsystem_c.dylib               0x99bf65b7 _pthread_start + 344
8   libsystem_c.dylib               0x99be0d4e thread_start + 34

Thread 0 crashed with X86 Thread State (32-bit):
  eax: 0x00000000  ebx: 0x07ad42e8  ecx: 0xbfffbc2c  edx: 0x94925a6a
  edi: 0xacd18a28  esi: 0x00000006  ebp: 0xbfffbc48  esp: 0xbfffbc2c
   ss: 0x00000023  efl: 0x00000206  eip: 0x94925a6a   cs: 0x0000000b
   ds: 0x00000023   es: 0x00000023   fs: 0x00000000   gs: 0x0000000f
  cr2: 0x010cd88c
Logical CPU: 0

Binary Images:
// Omitted to get under character limit

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 20396
    thread_create: 0
    thread_set_state: 66

VM Region Summary:
ReadOnly portion of Libraries: Total=131.8M resident=44.7M(34%) swapped_out_or_unallocated=87.1M(66%)
Writable regions: Total=60.1M written=3060K(5%) resident=9756K(16%) swapped_out=0K(0%) unallocated=50.6M(84%)

REGION TYPE                      VIRTUAL
===========                      =======
CG image                             16K
CoreAnimation                       328K
MALLOC                             41.7M
MALLOC guard page                    32K
Memory tag=35                      9900K
Stack                              68.8M
VM_ALLOCATE                        2456K
__DATA                             8484K
__LINKEDIT                         50.5M
__OBJC                                4K
__PAGEZERO                            4K
__TEXT                             81.3M
__UNICODE                           544K
mapped file                       237.1M
shared memory                        12K
===========                      =======
TOTAL                             500.7M
4

2 に答える 2

1

これは、Objective-C ブロックを .NET でマネージド デリゲートにマーシャリングする際の問題のようECSlidingViewController.AnchorTopViewです。

現在、Objective-C ブロックのマーシャリングはサポートされていません (そもそもマネージ デリゲートから発生したものではありません)。最終的には、このようなクラッシュが発生します。

ECSlidingViewController.AnchorTopView をオーバーライドする必要がない場合は、バインディングでブロックを IntPtr として入力するだけでよいため、次のようになります (バインディングをどのように行ったかについて推測しているだけであることに注意してください)。

interface ECSlidingViewController {
    void AnchorTopView (ECSide first, ECAnimations second, IntPtr block);
}

興味がある場合は、同様の問題を抱えている人がいます(このフォーラム スレッドにはもう少し詳しい説明が含まれています)。

于 2013-05-22T22:18:18.243 に答える