2013-11-01 3 views
2

OSSpinLockLock이 반복적으로 발생했으며 lldb가 이에 대한 적절한 callStackSymbols를 표시하지 않습니다.SpriteKit iOS7을 사용하여 게임을 프로그래밍 할 때 OSSpinLockLock 문제를 해결할 수있는 사람이 있습니까?

다음은 내가

내가 [NSThread callStackSymbols]하여 더 많은 문자를 얻기 위해 시도했지만이 경우에는 효과가 없습니다 Xcode의 버전 5.0.1 (5A2034a)의 lldb에서 가져온 것입니다.

이것은 SpriteKit (iOS7)에서만 발생합니다. SKEmitterNodes 주변에서 수십 번 확인했지만 내부에는 버그가 없습니다. Birzarrely 충분히 때때로 copyWithZone는 : 메시지는 다음과 같은 고속 발사체에 정상적으로 작동하지 않을 수

SKEmitterNode * 템플릿 = NSKeyedUnarchiver unarchiveObjectWithFile [[NSBundle mainBundle] pathForResource "cannonball_flame"ofType @ @ "SKS" ]]; .... ... [템플릿 사본]; // -> 어떤 경우에는 좋지 않음

이 문제를 해결할 사람이 있습니까? SpriteKit 버그 때문입니까?

02NOV2013 오전 1시 31분 호출 스택 0

libsystem_platform.dylib`OSSpinLockLock: 
0x38ef1654: movs r1, #1 

libsystem_platform.dylib`spin_lock + 2: 
0x38ef1656: ldrex r2, [r0] 
0x38ef165a: cmp r2, #0 
0x38ef165c: it  ne 
0x38ef165e: bne.w 0x38ef4a94    ; _OSSpinLockLockSlow$shim 
0x38ef1662: strex r2, r1, [r0] 
0x38ef1666: cmp r2, #0 
0x38ef1668: bne 0x38ef1656    ; spin_lock + 2 
0x38ef166a: dmb ish 
0x38ef166e: bx  lr 

call stack 1 
SpriteKit`SKSpinLockSync(int*, void() block_pointer): 
0x30c2d924: push {r4, r5, r6, r7, lr} 
0x30c2d926: add r7, sp, #12 
0x30c2d928: push.w {r8, r10, r11} 
0x30c2d92c: sub.w r4, sp, #64 
0x30c2d930: bic r4, r4, #15 
0x30c2d934: mov sp, r4 
0x30c2d936: vst1.64 {d8, d9, d10, d11}, [r4, :128]! 
0x30c2d93a: vst1.64 {d12, d13, d14, d15}, [r4, :128] 
0x30c2d93e: sub sp, #64 
0x30c2d940: mov r4, r0 
0x30c2d942: mov r0, r1 
0x30c2d944: str r4, [sp, #4] 
0x30c2d946: blx 0x30c44114    ; symbol stub for: dispatch_async$shim 
0x30c2d94a: movw r2, #1712 
0x30c2d94e: ldr r1, [pc, #140]   ; SKSpinLockSync(int*, void() block_pointer) + 184 
0x30c2d950: movt r2, #2171 
0x30c2d954: str r0, [sp, #8] 
0x30c2d956: add r0, sp, #12 
0x30c2d958: add r2, pc 
0x30c2d95a: ldr r2, [r2] 
0x30c2d95c: add r1, pc 
0x30c2d95e: str r2, [sp, #36] 
0x30c2d960: str r1, [sp, #40] 
0x30c2d962: ldr r1, [pc, #124]   ; SKSpinLockSync(int*, void() block_pointer) + 188 
0x30c2d964: str r7, [sp, #44] 
0x30c2d966: str.w sp, [sp, #52] 
0x30c2d96a: orr r1, r1, #1 
0x30c2d96e: add r1, pc 
0x30c2d970: str r1, [sp, #48] 
0x30c2d972: movs r1, #1 
0x30c2d974: str r1, [sp, #16] 
0x30c2d976: blx 0x30c44274    ; symbol stub for: SKCRenderPassNew::operator=(SKCRenderPassNew const&) 
0x30c2d97a: mov r0, r4 
0x30c2d97c: blx 0x30c44234    ; symbol stub for: +[SKOpenGLNode openGLNodeWithViewportSize:] 
0x30c2d980: ldr r0, [sp, #8] 
0x30c2d982: movs r2, #2 
0x30c2d984: ldr r1, [r0, #12] 
0x30c2d986: ldr r0, [sp, #8] 
0x30c2d988: str r2, [sp, #16] 
0x30c2d98a: blx r1 
0x30c2d98c: movs r0, #3 
0x30c2d98e: str r0, [sp, #16] 
0x30c2d990: ldr r0, [sp, #4] 
0x30c2d992: blx 0x30c44244    ; symbol stub for: -[SKOpenGLNode needsRenderForTime:] 
0x30c2d996: ldr r0, [sp, #8] 
0x30c2d998: blx 0x30c44104    ; symbol stub for: objc_copyWeak$shim 
0x30c2d99c: add r0, sp, #12 
0x30c2d99e: blx 0x30c44294    ; symbol stub for: SKCRenderPassNew::~SKCRenderPassNew() 
0x30c2d9a2: add r4, sp, #64 
0x30c2d9a4: vld1.64 {d8, d9, d10, d11}, [r4, :128]! 
0x30c2d9a8: vld1.64 {d12, d13, d14, d15}, [r4, :128] 
0x30c2d9ac: sub.w r4, r7, #24 
0x30c2d9b0: mov sp, r4 
0x30c2d9b2: pop.w {r8, r10, r11} 
0x30c2d9b6: pop {r4, r5, r6, r7, pc} 
0x30c2d9b8: ldr r0, [sp, #16] 
0x30c2d9ba: cmp r0, #3 
0x30c2d9bc: bls 0x30c2d9c0    ; SKSpinLockSync(int*, void() block_pointer) + 156 
0x30c2d9be: trap 
0x30c2d9c0: tbb [pc, r0] 
0x30c2d9c4: lsls r2, r0, #8 
0x30c2d9c6: movs r2, r0 
0x30c2d9c8: ldr r4, [sp, #20] 
0x30c2d9ca: ldr r0, [sp, #8] 
0x30c2d9cc: blx 0x30c44104    ; symbol stub for: objc_copyWeak$shim 
0x30c2d9d0: mov.w r0, #4294967295 
0x30c2d9d4: str r0, [sp, #16] 
0x30c2d9d6: mov r0, r4 
0x30c2d9d8: blx 0x30c44284    ; symbol stub for: SKCRenderPassNew::~SKCRenderPassNew() 
0x30c2d9dc: ldr r3, [sp, #400] 
0x30c2d9de: movs r1, r0 
0x30c2d9e0: lsls r6, r0, #1 
0x30c2d9e2: movs r0, r0 


didBeginContact: Hit Tree 
(lldb) po [NSThread callStackSymbols] 
<_NSCallStackArray 0x7f9fe40>(
0 ???         0x00571654 0x0 + 5707348, 
1 NaughtyBirds      0x000e7175 main + 0, 
2 SpriteKit       0x30bf38fd <redacted> + 300, 
3 SpriteKit       0x30bf67ef <redacted> + 42, 
4 SpriteKit       0x30c163a5 <redacted> + 3136, 
5 SpriteKit       0x30c262ab <redacted> + 354, 
6 SpriteKit       0x30c262ab <redacted> + 354, 
7 SpriteKit       0x30c262ab <redacted> + 354, 
8 SpriteKit       0x30beeb93 <redacted> + 174, 
9 SpriteKit       0x30c03449 <redacted> + 324, 
10 SpriteKit       0x30c00add <redacted> + 820, 
11 SpriteKit       0x30bfe51b <redacted> + 130, 
12 SpriteKit       0x30c20c87 <redacted> + 254, 
13 libglInterpose.dylib    0x002bb5ff -[DYDisplayLinkInterposer forwardDisplayLinkCallback:] + 270, 
14 QuartzCore       0x309dfad3 <redacted> + 98, 
15 QuartzCore       0x309df87d <redacted> + 344, 
16 IOMobileFramebuffer     0x3360f76d <redacted> + 104, 
17 IOKit        0x2f266be5 IODispatchCalloutFromCFMessage + 248, 
18 CoreFoundation      0x2e544b81 <redacted> + 136, 
19 CoreFoundation      0x2e54f777 <redacted> + 34, 
20 CoreFoundation      0x2e54f713 <redacted> + 346, 
21 CoreFoundation      0x2e54dedf <redacted> + 1406, 
22 CoreFoundation      0x2e4b8471 CFRunLoopRunSpecific + 524, 
23 CoreFoundation      0x2e4b8253 CFRunLoopRunInMode + 106, 
24 GraphicsServices     0x331f22eb GSEventRunModal + 138, 
25 UIKit        0x30d6d845 UIApplicationMain + 1136, 
26 NaughtyBirds      0x000e7259 main + 228, 
27 libdyld.dylib      0x38ddaab7 <redacted> + 2 

)

모든 * 스레드 1 BT (lldb) TID = 0xcf5af, 0x38ef1656 spin_lock + 2, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x38ef1656 libsystem_platform.dylib libsystem_platform.dylib spin_lock + 2 프레임 # 1 : 0x30c2d980 SpriteKit SKSpinLockSync(int*, void() block_pointer) + 92 frame #2: 0x30bf38fc SpriteKit - [SKTexture loadImageData] + 300 프레임 # 3 : 0x30bf67ee SpriteKit -[SKTexture size] + 42 frame #4: 0x30c163a4 SpriteKit SKCEmitterSprite :: update (double) + 3136 프레임 # 5 : 0x30c262aa SpriteKit SKCSprite::update(double) + 354 frame #6: 0x30c262aa SpriteKit SKCSprite :: 업데이트 (더블) + 354 프레임 # 7 : 0x30c262aa의 SpriteKit SKCSprite::update(double) + 354 frame #8: 0x30beeb92 SpriteKit - [SKScene의 _update :] + 174 프레임 # 9 : 0x30c03448 SpriteKit -[SKView(Private) _update:] + 324 frame #10: 0x30c00adc SpriteKit는 - [SKView renderCallback는 :] + 820 프레임 # 11 : 0x30bfe51a가 SpriteKit __29-[SKView setUpRenderCallback]_block_invoke + 130 frame #12: 0x30c20c86 SpriteKit - [SKDisplayLink callbackForNextFrame :] + 254 프레임 # 13 : libglInterpose.dylib -[DYDisplayLinkInterposer forwardDisplayLinkCallback:] + 270 frame #14: 0x309dfad2 QuartzCore CA : 디스플레이 0x002bb5fe :: DisplayLinkItem :: 디스패치() + 98 프레임 # 15 : 0x309df87c QuartzCore CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 344 frame #16: 0x3360f76c IOMobileFramebuffer IOMobileFramebufferVsyncNotifyFunc + 104 프레임 # 17 : 0x2f266be4 IOKit IODispatchCalloutFromCFMessage + 248 frame #18: 0x2e544b80 CoreFoundation _CFMachPortPerform + 136 프레임 # 19 : 0x2e54f776 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34 frame #20: 0x2e54f712 CoreFoundation __CFRunLoopDoSource1 + 346 프레임 # 21 : CoreFoundation에서 __CFRunLoopRun + 1406 frame #22: 0x2e4b8470 CoreFoundation 0x2e54dede CFRunLoopRunSpecific + 524 프레임 # 23 : 0x2e4b8252 CoreFoundation에서 CFRunLoopRunInMode + 106 frame #24: 0x331f22ea GraphicsServices GSEventRunModal + 138 프레임 # 25 : main.m에서 0x30d6d844 UIKit UIApplicationMain + 1136 frame #26: 0x000e7258 NaughtyBirds 본체 (ARGC = 1 ARGV = 0x27d2bc4c) + 228 18

스레드 # 5 : TID = 0xcf5de, 0x38e91550 libsystem_kernel.dylib __semwait_signal + 24, name = 'gputools.smt_poll.0x15d305b0 frame #0: 0x38e91550 libsystem_kernel.dylib __semwait_signal + 24 프레임 # 1 : 0x38e024ec libsystem_c.dylib nanosleep + 172 frame #2: 0x38e0243c libsystem_c.dylib usleep + 52 프레임 # 3 : 0x00350ad0 GPUToolsCore smt_poll_thread_entry(void*) + 124 frame #4: 0x38ef7c5c libsystem_pthread.dylib _pthread_body + 140 프레임 # 5 : 0x38ef7bce libsystem_pthread.dylib`_pthread_start + 102

스레드 # 7 : tid = 0xcf5e0, 0x38e7e838 libsystem_kernel.dylib kevent64 + 24, queue = 'com.apple.libdispatch-manager frame #0: 0x38e7e838 libsystem_kernel.dylib kevent64 + 24 프레임 # 1 : 0x38dcd0d4 libdispatch.dylib _dispatch_mgr_invoke + 232 frame #2: 0x38dc7622 libdispatch.dylib _dispatch_mgr_thread + 38

스레드 # 8 : TID = 0xcf655, 0x38e91c7c __workq_kernreturn + 8 __workq_kernreturn + 8 frame #0: 0x38e91c7c libsystem_kernel.dylib libsystem_kernel.dylib 프레임 # 1 0x38ef5e0a libsystem_pthread.dylib`_pthread_wqthread + 310

스레드 # 9 : TID = 0xcf664, 0x38e7ea84 libsystem_kernel.dylib mach_msg_trap + 20 frame #0: 0x38e7ea84 libsystem_kernel.dylib mach_msg_trap + 20 프레임 # 1 : 0x2df38600 AudioToolbox CAPThread AURemoteIO::IOThread::Entry(void*) + 8 frame #4: 0x2de75772 AudioToolbox : 항목 (CAPThread *) +210 프레임 번호 : 0x38e7e880 mach_msg + 40 frame #2: 0x2df353c2 AudioToolbox AURemoteIO :: IOThread :: RUN() + 106 프레임 # 3 libsystem_kernel.dylib 5 : 0x38ef7c5c libsystem_pthread.dylib _pthread_body + 140 frame #6: 0x38ef7bce libsystem_pthread.dylib _pthread_start + 102 (lldb)

+0

중복 질문입니다. 체크 아웃 : http://stackoverflow.com/questions/19449163/what-is-skspinlocksync-in-sprite-kit-and-how-do-i-fix-it – user2616738

답변

-3

마지막으로 해결책을 찾았습니다. 인터넷 검색을 통해 얻을 수있는 모든 게시물은 해결책이 없습니다. 때로는 특수 작업 유형이이 문제를 일으키지 만 작업에 멀티 스레딩 개념이 포함되어 있으면 번들의 질감이 손상되거나 누락되지 않습니다. 그리고 나는 그것을 해결했다!

+9

나는이 문제가 오래 동안 발생 해왔다. 시간과 나는 당신의 대답을 더 잘 이해하고 싶습니다. 좀 더 설명해 주시겠습니까? – Kardasis