我正在尝试将Brad Larson's GPUImage framework集成到我的项目中。示例代码工作正常。在我整合之后,它构建得很好,但我在运行时遇到了崩溃。它在AVCaptureVideoDataOutputSampleBufferDelegate
方法崩溃,
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection;
特别是
runOnMainQueueWithoutDeadlocking
阻止。我试图找出崩溃区域但是在看到崩溃日志几个小时之后也找不到它。我对崩溃没有任何了解。下面是我的崩溃日志。有人可以指出我的问题吗?我还怀疑,我可以使用名称com.sunsetlakesoftware.GPUImage.processingQueue
继续队列吗?
Date/Time: 2012-06-19 17:46:28.449 +0530
OS Version: iPhone OS 5.1.1 (9B206)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xb00566c0
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x344faf78 objc_msgSend + 16
1 GPUTest 0x0017d16a __74-[GPUImageVideoCamera captureOutput:didOutputSampleBuffer:fromConnection:]_block_invoke_0118 (GPUImageVideoCamera.m:415)
2 libdispatch.dylib 0x35b03b24 _dispatch_barrier_sync_f_slow_invoke + 72
3 libdispatch.dylib 0x35b02e8a _dispatch_main_queue_callback_4CF$VARIANT$up + 190
4 CoreFoundation 0x3247d2a6 __CFRunLoopRun + 1262
5 CoreFoundation 0x3240049e CFRunLoopRunSpecific + 294
6 CoreFoundation 0x32400366 CFRunLoopRunInMode + 98
7 GraphicsServices 0x31557432 GSEventRunModal + 130
8 UIKit 0x31effcce UIApplicationMain + 1074
9 GPUTest 0x000b0714 main (main.m:10)
10 GPUTest 0x000b06cc start + 32
Thread 1 name: Dispatch queue: com.sunsetlakesoftware.GPUImage.processingQueue
Thread 1:
0 libsystem_kernel.dylib 0x35b4b054 semaphore_wait_trap + 8
1 libdispatch.dylib 0x35b0447e _dispatch_thread_semaphore_wait$VARIANT$up + 6
2 libdispatch.dylib 0x35b0265e _dispatch_barrier_sync_f_slow + 82
3 libdispatch.dylib 0x35b025dc dispatch_barrier_sync_f$VARIANT$up + 16
4 libdispatch.dylib 0x35b02238 dispatch_sync_f$VARIANT$up + 12
5 libdispatch.dylib 0x35b028ee _dispatch_sync_slow + 46
6 libdispatch.dylib 0x35b028ae dispatch_sync$VARIANT$up + 18
7 GPUTest 0x00172796 runOnMainQueueWithoutDeadlocking (GPUImageOutput.m:13)
8 GPUTest 0x0017d0a6 -[GPUImageVideoCamera captureOutput:didOutputSampleBuffer:fromConnection:] (GPUImageVideoCamera.m:414)
9 AVFoundation 0x32dd0244 __74-[AVCaptureVideoDataOutput _AVCaptureVideoDataOutput_VideoDataBecameReady]_block_invoke_0 + 220
10 libdispatch.dylib 0x35af7c52 _dispatch_call_block_and_release + 6
11 libdispatch.dylib 0x35b02ca4 _dispatch_queue_drain + 268
12 libdispatch.dylib 0x35b02b12 _dispatch_queue_invoke$VARIANT$up + 30
13 libdispatch.dylib 0x35b03784 _dispatch_worker_thread2 + 208
14 libsystem_c.dylib 0x30d40df4 _pthread_wqthread + 288
15 libsystem_c.dylib 0x30d40cc8 start_wqthread + 0
Thread 2:
0 libsystem_kernel.dylib 0x35b5bcd4 __workq_kernreturn + 8
1 libsystem_c.dylib 0x30d40f36 _pthread_wqthread + 610
2 libsystem_c.dylib 0x30d40cc8 start_wqthread + 0
Thread 3 name: Dispatch queue: com.apple.libdispatch-manager
Thread 3:
0 libsystem_kernel.dylib 0x35b4b3a8 kevent + 24
1 libdispatch.dylib 0x35b03ea4 _dispatch_mgr_invoke + 708
2 libdispatch.dylib 0x35b03bc2 _dispatch_mgr_thread + 30
Thread 4:
0 libsystem_kernel.dylib 0x35b5bcd4 __workq_kernreturn + 8
1 libsystem_c.dylib 0x30d40f36 _pthread_wqthread + 610
2 libsystem_c.dylib 0x30d40cc8 start_wqthread + 0
Thread 5:
0 libsystem_kernel.dylib 0x35b5bcd4 __workq_kernreturn + 8
1 libsystem_c.dylib 0x30d40f36 _pthread_wqthread + 610
2 libsystem_c.dylib 0x30d40cc8 start_wqthread + 0
Thread 6 name: WebThread
Thread 6:
0 libsystem_kernel.dylib 0x35b4b004 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x35b4b1fa mach_msg + 50
2 CoreFoundation 0x3247e3ec __CFRunLoopServiceMachPort + 120
3 CoreFoundation 0x3247d124 __CFRunLoopRun + 876
4 CoreFoundation 0x3240049e CFRunLoopRunSpecific + 294
5 CoreFoundation 0x32400366 CFRunLoopRunInMode + 98
6 WebCore 0x35c1dc9c _ZL12RunWebThreadPv + 396
7 libsystem_c.dylib 0x30d4672e _pthread_start + 314
8 libsystem_c.dylib 0x30d465e8 thread_start + 0
Thread 7 name: com.apple.coremedia.player.async
Thread 7:
0 libsystem_kernel.dylib 0x35b5b068 __psynch_cvwait + 24
1 libsystem_c.dylib 0x30d46a46 _pthread_cond_wait + 634
2 libsystem_c.dylib 0x30d467c2 pthread_cond_wait + 34
3 CoreMedia 0x32ec3868 FigSemaphoreWaitRelative + 268
4 MediaToolbox 0x309fb3e6 fpa_AsyncMovieControlThread + 22
5 CoreMedia 0x32ee28b4 figThreadMain + 168
6 libsystem_c.dylib 0x30d4672e _pthread_start + 314
7 libsystem_c.dylib 0x30d465e8 thread_start + 0
Thread 0 crashed with ARM Thread State:
r0: 0x00541c20 r1: 0x00190b4f r2: 0x0056f240 r3: 0x00190b4f
r4: 0xb00566b8 r5: 0x00000000 r6: 0x00000000 r7: 0x2feace34
r8: 0x2feace4c r9: 0x000642d3 r10: 0x2feace4c r11: 0x3e47dde0
ip: 0x3f3c22c8 sp: 0x2feace24 lr: 0x0017d171 pc: 0x344faf78
cpsr: 0x20000030
答案 0 :(得分:0)
最后,我找到了解决方案。我刚刚在目标的编译源中替换了AppDelegate的编译器标志,这是为了ARC的目的而设置的。
即我删除了-fno-objc-arc
标志,并将其替换为导致崩溃的AppDelegate类的-fobjc-arc
标志。