关闭的时候会闪退
可以了,以后这样的问题,没有文档,感觉很难让研发自行发现然后去修改。
竟然有人讲了,我也说一下
1.6 beta 3 不会的,但 beta 6.2的版本,在关闭模似器的时候,会发生Crash
以下是调用栈…
Process: Simulator [93904]
Path: /Applications/Cocos/CocosCreator.app/Contents/Resources/cocos2d-x/simulator/mac/Simulator.app/Contents/MacOS/Simulator
Identifier: com.cocos.apps.simulator
Version: 20170808
Code Type: X86-64 (Native)
Parent Process: CocosCreator [89797]
Responsible: Simulator [93904]
User ID: 501
Date/Time: 2017-08-08 20:42:27.559 +0800
OS Version: Mac OS X 10.12.3 (16D32)
Report Version: 12
Anonymous UUID: 881FD546-5ECB-8969-069D-AC4E2FE0328D
Time Awake Since Boot: 360000 seconds
System Integrity Protection: disabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
VM Regions Near 0x18:
-->
Kernel Alloc Once 0000000002eb0000-0000000002eb2000 [ 8K] rw-/rwx SM=PRV
Application Specific Information:
Performing @selector(onFileClose:) from sender NSMenuItem 0x7f967750f540
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.cocos.apps.simulator 0x00000001037fd6e5 0x102ea0000 + 9819877
1 com.cocos.apps.simulator 0x00000001037e7355 0x102ea0000 + 9728853
2 com.cocos.apps.simulator 0x00000001037ef1e9 0x102ea0000 + 9761257
3 com.cocos.apps.simulator 0x0000000104682a22 0x102ea0000 + 25045538
4 com.cocos.apps.simulator 0x0000000104689a38 0x102ea0000 + 25074232
5 com.cocos.apps.simulator 0x0000000104681fcc 0x102ea0000 + 25042892
6 com.cocos.apps.simulator 0x00000001037e62c1 0x102ea0000 + 9724609
7 com.cocos.apps.simulator 0x00000001037e6345 0x102ea0000 + 9724741
8 com.cocos.apps.simulator 0x00000001037ed8b6 0x102ea0000 + 9754806
9 com.cocos.apps.simulator 0x00000001037ed992 0x102ea0000 + 9755026
10 com.cocos.apps.simulator 0x00000001037ed9f5 0x102ea0000 + 9755125
11 com.cocos.apps.simulator 0x00000001037eda19 0x102ea0000 + 9755161
12 com.cocos.apps.simulator 0x00000001046c5730 0x102ea0000 + 25319216
13 com.cocos.apps.simulator 0x00000001046c56d1 0x102ea0000 + 25319121
14 com.cocos.apps.simulator 0x00000001046c5765 0x102ea0000 + 25319269
15 com.cocos.apps.simulator 0x00000001046c5804 0x102ea0000 + 25319428
16 com.cocos.apps.simulator 0x0000000102ec1c49 0x102ea0000 + 138313
17 com.cocos.apps.simulator 0x0000000103fb186c 0x102ea0000 + 17897580
18 com.cocos.apps.simulator 0x0000000102ebb864 0x102ea0000 + 112740
19 com.cocos.apps.simulator 0x0000000102ebb8b5 0x102ea0000 + 112821
20 com.cocos.apps.simulator 0x0000000102ebb8d9 0x102ea0000 + 112857
21 com.cocos.apps.simulator 0x0000000102eae81e 0x102ea0000 + 59422
22 libsystem_trace.dylib 0x00007fffac96bc3d _os_activity_initiate + 61
23 com.apple.AppKit 0x00007fff95495c9c -[NSApplication(NSResponder) sendAction:to:from:] + 456
24 com.apple.AppKit 0x00007fff94f69e06 -[NSMenuItem _corePerformAction] + 324
25 com.apple.AppKit 0x00007fff94f69b72 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
26 libsystem_trace.dylib 0x00007fffac96bc3d _os_activity_initiate + 61
27 com.apple.AppKit 0x00007fff94f68985 -[NSMenu performKeyEquivalent:] + 367
28 com.apple.AppKit 0x00007fff95494897 routeKeyEquivalent + 1024
29 com.apple.AppKit 0x00007fff954924ad -[NSApplication(NSEvent) sendEvent:] + 3377
30 com.cocos.apps.simulator 0x0000000104aa1d7d 0x102ea0000 + 29367677
31 com.cocos.apps.simulator 0x00000001047542a1 0x102ea0000 + 25903777
32 com.cocos.apps.simulator 0x00000001043c2a8f 0x102ea0000 + 22162063
33 com.cocos.apps.simulator 0x00000001043c8790 0x102ea0000 + 22185872
34 com.cocos.apps.simulator 0x000000010481124d 0x102ea0000 + 26677837
35 com.cocos.apps.simulator 0x0000000102ea81b8 0x102ea0000 + 33208
36 com.cocos.apps.simulator 0x0000000102ea312d 0x102ea0000 + 12589
37 com.apple.CoreFoundation 0x00007fff971fda6c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
38 com.apple.CoreFoundation 0x00007fff971fd96b _CFXRegistrationPost + 427
39 com.apple.CoreFoundation 0x00007fff971fd6d2 ___CFXNotificationPost_block_invoke + 50
40 com.apple.CoreFoundation 0x00007fff971bad63 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1827
41 com.apple.CoreFoundation 0x00007fff971b9d9c _CFXNotificationPost + 604
42 com.apple.Foundation 0x00007fff98be0a37 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
43 com.apple.AppKit 0x00007fff94e5b2b5 -[NSApplication _postDidFinishNotification] + 297
44 com.apple.AppKit 0x00007fff94e5b01a -[NSApplication _sendFinishLaunchingNotification] + 208
45 com.apple.AppKit 0x00007fff94d1e383 -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 552
46 com.apple.AppKit 0x00007fff94d1dfd5 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 661
47 com.apple.Foundation 0x00007fff98c2bebd -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 290
48 com.apple.Foundation 0x00007fff98c2bd37 _NSAppleEventManagerGenericHandler + 102
49 com.apple.AE 0x00007fff9802e0da aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned char*) + 544
50 com.apple.AE 0x00007fff9802de51 dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 39
51 com.apple.AE 0x00007fff9802dd5d aeProcessAppleEvent + 312
52 com.apple.HIToolbox 0x00007fff9678474f AEProcessAppleEvent + 55
53 com.apple.AppKit 0x00007fff94d1987d _DPSNextEvent + 1833
54 com.apple.AppKit 0x00007fff95493d6b -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2789
55 com.apple.AppKit 0x00007fff94d0df35 -[NSApplication run] + 926
56 com.apple.AppKit 0x00007fff94cd8850 NSApplicationMain + 1237
57 com.cocos.apps.simulator 0x0000000102ebc332 0x102ea0000 + 115506
58 libdyld.dylib 0x00007fffac739255 start + 1
Thread 1:
0 libsystem_kernel.dylib 0x00007fffac8684e2 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fffac9505fe _pthread_wqthread + 1023
2 libsystem_pthread.dylib 0x00007fffac9501ed start_wqthread + 13
Thread 2:
0 libsystem_kernel.dylib 0x00007fffac8684e2 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fffac950791 _pthread_wqthread + 1426
2 libsystem_pthread.dylib 0x00007fffac9501ed start_wqthread + 13
Thread 3:
0 libsystem_kernel.dylib 0x00007fffac8684e2 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fffac950791 _pthread_wqthread + 1426
2 libsystem_pthread.dylib 0x00007fffac9501ed start_wqthread + 13
Thread 4:
0 libsystem_kernel.dylib 0x00007fffac8684e2 __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fffac950791 _pthread_wqthread + 1426
2 libsystem_pthread.dylib 0x00007fffac9501ed start_wqthread + 13
Thread 5:: com.apple.NSEventThread
0 libsystem_kernel.dylib 0x00007fffac86038a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fffac85f7d7 mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff971e8c94 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff971e8121 __CFRunLoopRun + 1361
4 com.apple.CoreFoundation 0x00007fff971e7974 CFRunLoopRunSpecific + 420
5 com.apple.AppKit 0x00007fff94e66a62 _NSEventThread + 205
6 libsystem_pthread.dylib 0x00007fffac950aab _pthread_body + 180
7 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
8 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 6:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 7:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 8:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 9:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 10:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 11:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 12:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 ??? 0x00000000434f4e44 0 + 1129270852
Thread 13:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 14:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 ??? 0x00000000434f4e44 0 + 1129270852
Thread 15:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 16:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 17:: JS Helper
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 com.cocos.apps.simulator 0x0000000103891a01 0x102ea0000 + 10426881
3 ??? 0x00000000434f4e44 0 + 1129270852
Thread 18:
0 libsystem_kernel.dylib 0x00007fffac86038a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fffac85f7d7 mach_msg + 55
2 com.cocos.apps.simulator 0x0000000103e7d1ad 0x102ea0000 + 16634285
3 ??? 0x0000000000010000 0 + 65536
Thread 19:
0 libsystem_kernel.dylib 0x00007fffac867c86 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fffac95196a _pthread_cond_wait + 712
2 libc++.1.dylib 0x00007fffab2d758d std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3 com.cocos.apps.simulator 0x000000010472c5e6 0x102ea0000 + 25740774
4 com.cocos.apps.simulator 0x000000010473be74 void* std::__1::__thread_proxy<std::__1::tuple<void (cocos2d::TextureCache::*)(), cocos2d::TextureCache*> >(void*) + 532
5 libsystem_pthread.dylib 0x00007fffac950aab _pthread_body + 180
6 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
7 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 20:: com.facebook.SocketRocket.NetworkThread
0 libsystem_kernel.dylib 0x00007fffac86038a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fffac85f7d7 mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff971e8c94 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff971e8121 __CFRunLoopRun + 1361
4 com.apple.CoreFoundation 0x00007fff971e7974 CFRunLoopRunSpecific + 420
5 com.apple.Foundation 0x00007fff98bfc612 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 277
6 com.cocos.apps.simulator 0x000000010406505e 0x102ea0000 + 18632798
7 com.apple.Foundation 0x00007fff98c0cc6d __NSThread__start__ + 1243
8 libsystem_pthread.dylib 0x00007fffac950aab _pthread_body + 180
9 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
10 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 21:: com.apple.NSURLConnectionLoader
0 libsystem_kernel.dylib 0x00007fffac86038a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fffac85f7d7 mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff971e8c94 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff971e8121 __CFRunLoopRun + 1361
4 com.apple.CoreFoundation 0x00007fff971e7974 CFRunLoopRunSpecific + 420
5 com.apple.CFNetwork 0x00007fff96357680 +[NSURLConnection(Loader) _resourceLoadLoop:] + 313
6 com.apple.Foundation 0x00007fff98c0cc6d __NSThread__start__ + 1243
7 libsystem_pthread.dylib 0x00007fffac950aab _pthread_body + 180
8 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
9 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
Thread 22:: com.apple.CFSocket.private
0 libsystem_kernel.dylib 0x00007fffac867f4a __select + 10
1 com.apple.CoreFoundation 0x00007fff97223fca __CFSocketManager + 682
2 libsystem_pthread.dylib 0x00007fffac950aab _pthread_body + 180
3 libsystem_pthread.dylib 0x00007fffac9509f7 _pthread_start + 286
4 libsystem_pthread.dylib 0x00007fffac9501fd thread_start + 13
接着creator里会出现一行
Simulator: HttpClient singleton is nullptr
Ps. 我的项目有用WebSocket
碰到了同样的问题, 关闭的时候创建FontAtlas,此时Director里面的GLView已经没了,访问了空指针.
什么平台?
第三次退回到1.5.2,感谢引擎团队的付出,没办法,我们只有开始研究代码自己改一个稳定的版本,或者将此版本固定了,不再升级更新。一直没有使用default版本,是因为开发环境所致,一直没有编译过default,接下来只能走default.使用1.5.2一天闪退大概一两次,使用1.6以后,下午试了一下,闪退了至少十多次,而且并不是必闪的,用着用着莫名其妙地就闪退了,下次用又没闪。我没有default版本,过几天再认真来研究default.
用我給的測試項目測試,發現beta 6.2問題還是在@@
ios
@nantas 小问题:
mac下由1.5.2直接升级到b6.2版本,原先Camera的属性检查参数都是自动折叠的,现在全部展开了:
followX: {
default: 0,
visible () {
return this.smoothFollow;
}
},
mac下模拟器一直闪退警告,但模拟器本身正常没关闭掉。
这个观念我不太赞同,JS 的执行效率不高,但是自由度过高,可以传递任何类型的数据给一个函数,如果要给所有的函数加上保护性代码,成本太高了,运行时损耗也非常高,debug 是程序开发者很正常的过程,你遇到的闪退说明了代码中有问题,肯定是要解决的,对于开发阶段来说闪退报错都不应该被遮蔽或者忽视。发布版本才应该保障不会闪退
给所有函数加上保护性代码,只是判断下传过来的参数是不是合法,性能损耗应该几乎接近为0.。这就是客户端程序员与服务器程序员思想的差别。稳定性应该放第一位,再优化性能,检查一下参数合法性能消耗多少性能?以我十多年程序员的经验,真是可以忽略不计。只需要将FPS从60降到59.999,那点消耗的性能补回来足足有余了……
不赞同,确实有损耗。
你们到现在竟然还在用binary版本,必须得用default,才能满足后面的定制。
这点我同意,正因为 cocos creator 是客户端引擎,所以并没有将不崩溃,持续运行放在第一位,实际上也做不到,在很多错误发生的时候引擎本来就做不到继续执行下去。再退一步说,如果引擎保证了你遇到的 spawn / sequence 传递一个参数可以运行,对开发者有好处吗???开发者实际上还是写了错误的代码。Spawn,Sequence 就是管理动作队列的,从设计上说只包装一个动作就是错误的,如果按你之前提的想法直接返回原始函数,那么实际上修改了代码的语义,这点我认为也是不可接受的,这个函数做了它职责范围之外的事情,并且修改了代码的字面意义。
beta 版是用来收集反馈的,不建议用于正式项目。感谢您的试用,如果没有你们的试用,我们无法肯定正式版一定能兼容所有项目所有平台。
是有意义的,我们做的捕鱼,当时我就是这么测试的,最终选择了白鹭,是因为它能扛住400-500动画,而同样的测试当时Creator只能跑200不到就卡的不行了,当然那是3月份的时候,最新的1.6还没测试过。
谢谢反馈,动画问题批评的是。
这套动画最开始是 Fireball 里实现的,当时要实现成跪舔 w3c 标准的东西,底层比较复杂,没有为性能做太多考虑。之后我们会参考友商的引擎性能,重新标定。
