场景使用spine且场景勾选自动释放,切换场景后。spine释放时闪退
反馈时请提供以下信息:
-
thread #1, queue = ‘com.apple.main-thread’, stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
frame #0: 0x0000000104875cf3 JavaScriptCoreWTFCrashWithInfo(int, char const*, char const*, int) + 19 frame #1: 0x000000010552dab4 JavaScriptCoreJSC::LocalAllocator::allocateSlowCase(JSC::Heap&, unsigned long, JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 1092
frame #2: 0x0000000105111211 JavaScriptCoreJSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor(JSC::VM&, JSC::SourceCode const&, JSC::CodeSpecializationKind, WTF::OptionSet<JSC::CodeGenerationMode>, JSC::ParserError&, JSC::SourceParseMode) + 6609 frame #3: 0x0000000105b4107f JavaScriptCoreJSC::ScriptExecutable::prepareForExecutionImpl(JSC::VM&, JSC::JSFunction*, JSC::JSScope*, JSC::CodeSpecializationKind, JSC::CodeBlock*&) + 1071
frame #4: 0x000000010563fb29 JavaScriptCoreJSC::Interpreter::executeCall(JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 2249 frame #5: 0x0000000104e178c9 JavaScriptCoreJSObjectCallAsFunction + 809- frame #6: 0x0000000100ff1b59 testgame-mobile
se::Object::call(this=0x0000600001b5fe00, args=size=1, thisObject=0x0000600001b5d200, rval=0x00007ff7bf25bb80) at Object.mm:533:30 frame #7: 0x0000000100e30bf9 testgame-mobilejs_cocos2dx_spine_SkeletonDataMgr_setDestroyCallback(se::State&)::_12::operator()(this=0x0000600000102dc8, larg0=1) const at jsb_cocos2dx_spine_auto.cpp:15132:45 frame #8: 0x0000000100e30abf testgame-mobile`decltype(std::declval<js_cocos2dx_spine_SkeletonDataMgr_setDestroyCallback(se::State&)::_12&>()(std::declval())) std::__1::__invoke[abi:v160006]<js_cocos2dx_spine_SkeletonDataMgr_setDestroyCallback(se::State&)::_12&, int>(__f=0x0000600000102dc8, __args=0x00007ff7bf25bc94) at invoke.h:394:23 frame #9: 0x0000000100e30a6d testgame-mobile`void std::__1::__invoke_void_return_wrapper<void, true>::__call<js_cocos2dx_spine_SkeletonDataMgr_setDestroyCallback(se::State&)::_12&, int>(__args=0x0000600000102dc8, __args=0x00007ff7bf25bc94) at invoke.h:487:9
frame #10: 0x0000000100e30a45 testgame-mobilestd::__1::__function::__alloc_func<js_cocos2dx_spine_SkeletonDataMgr_setDestroyCallback(se::State&)::$_12, std::__1::allocator<js_cocos2dx_spine_SkeletonDataMgr_setDestroyCallback(se::State&)::$_12>, void (int)>::operator()[abi:v160006](this=0x0000600000102dc8, __arg=0x00007ff7bf25bc94) at function.h:185:16 frame #11: 0x0000000100e2fa11 testgame-mobilestd::__1::__function::__func<js_cocos2dx_spine_SkeletonDataMgr_setDestroyCallback(se::State&)::_12, std::__1::allocator<js_cocos2dx_spine_SkeletonDataMgr_setDestroyCallback(se::State&)::_12>, void (int)>::operator()(this=0x0000600000102dc0, __arg=0x00007ff7bf25bc94) at function.h:356:12
frame #12: 0x00000001010574da testgame-mobilestd::__1::__function::__value_func<void (int)>::operator()[abi:v160006](this=0x0000600002a1a2f0, __args=0x00007ff7bf25bc94) const at function.h:510:16 frame #13: 0x000000010105748c testgame-mobilestd::__1::function<void (int)>::operator()(this= Lambda in File jsb_cocos2dx_spine_auto.cpp at Line 15121, __arg=1) const at function.h:1156:12
frame #14: 0x00000001012425a3 testgame-mobilespine::SkeletonDataMgr::releaseByUUID(this=0x0000600002a1a2e0, uuid="e768ef70-c90b-4096-9775-e196a69ccf7d") at SkeletonDataMgr.cpp:108:17 frame #15: 0x0000000100f7ab0b testgame-mobilespine::SkeletonRenderer::~SkeletonRenderer(this=0x00007fecbea29da0) at SkeletonRenderer.cpp:154:54
frame #16: 0x000000010132e76d testgame-mobilespine::SkeletonAnimation::~SkeletonAnimation(this=0x00007fecbea29da0) at SkeletonAnimation.cpp:145:1 frame #17: 0x000000010125db93 testgame-mobilespine::SkeletonCache::~SkeletonCache(this=0x00007fecbea29da0) at SkeletonCache.cpp:177:5
frame #18: 0x000000010125dcf5 testgame-mobilespine::SkeletonCache::~SkeletonCache(this=0x00007fecbea29da0) at SkeletonCache.cpp:172:38 frame #19: 0x000000010125dd39 testgame-mobilespine::SkeletonCache::~SkeletonCache(this=0x00007fecbea29da0) at SkeletonCache.cpp:172:38
frame #20: 0x0000000100ecc2e8 testgame-mobilecocos2d::Ref::release(this=0x00007fecbea29da0) at CCRef.cpp:109:9 frame #21: 0x0000000100cee373 testgame-mobilespine::SkeletonCacheAnimation::~SkeletonCacheAnimation(this=0x00007fecbea28890) at SkeletonCacheAnimation.cpp:62:29
frame #22: 0x0000000100cee615 testgame-mobilespine::SkeletonCacheAnimation::~SkeletonCacheAnimation(this=0x00007fecbea28890) at SkeletonCacheAnimation.cpp:60:56 frame #23: 0x0000000100cee659 testgame-mobilespine::SkeletonCacheAnimation::~SkeletonCacheAnimation(this=0x00007fecbea28890) at SkeletonCacheAnimation.cpp:60:56
frame #24: 0x0000000100ecc2e8 testgame-mobilecocos2d::Ref::release(this=0x00007fecbea28890) at CCRef.cpp:109:9 frame #25: 0x0000000100e047bb testgame-mobilejs_spine_SkeletonCacheAnimation_finalize(s=0x00007ff7bf25bf98) at jsb_cocos2dx_spine_auto.cpp:16089:11
frame #26: 0x0000000100e046c2 testgame-mobilejs_spine_SkeletonCacheAnimation_finalizeRegistry(_obj=0x000000015753a000) at jsb_cocos2dx_spine_auto.cpp:16092:1 frame #27: 0x0000000104dff0a9 JavaScriptCoreJSC::JSCallbackObjectJSC::JSNonFinalObject::destroy(JSC::JSCell*) + 121
frame #28: 0x000000010552a81b JavaScriptCoreJSC::IsoHeapCellType::finishSweep(JSC::MarkedBlock::Handle&, JSC::FreeList*) const + 6443 frame #29: 0x000000010553148a JavaScriptCoreJSC::MarkedBlock::Handle::sweep(JSC::FreeList*) + 298
frame #30: 0x000000010552dc6f JavaScriptCoreJSC::LocalAllocator::tryAllocateIn(JSC::MarkedBlock::Handle*, unsigned long) + 31 frame #31: 0x000000010552d89a JavaScriptCoreJSC::LocalAllocator::allocateSlowCase(JSC::Heap&, unsigned long, JSC::GCDeferralContext*, JSC::AllocationFailureMode) + 554
frame #32: 0x0000000104e110e4 JavaScriptCoreJSC::JSCallbackObject<JSC::JSNonFinalObject>::create(JSC::JSGlobalObject*, JSC::Structure*, OpaqueJSClass*, void*) + 964 frame #33: 0x0000000104e1338b JavaScriptCoreJSObjectMake + 91
frame #34: 0x0000000101236904 testgame-mobilese::Class::_createJSObjectWithClass(cls=0x00007fecbdf1aee0) at Class.cpp:242:16 frame #35: 0x0000000100ff1635 testgame-mobilese::Object::createObjectWithClass(cls=0x00007fecbdf1aee0) at Object.mm:341:29
frame #36: 0x0000000100e5b35c testgame-mobilejs_gfx_Texture2D_constructorRegistry(_cx=0x000000015741a068, _constructor=0x000000015753c3c0, argc=2, _argv=0x00007ff7bf25d600, _exception=0x00007ff7bf25d538) at jsb_gfx_auto.cpp:1559:1 frame #37: 0x0000000104dfe664 JavaScriptCoreJSC::constructJSCallbackConstructor(JSC::JSGlobalObject*, JSC::CallFrame*) + 6212
frame #38: 0x000000010575d2c6 JavaScriptCoreJSC::handleHostCall(JSC::JSGlobalObject*, JSC::CallFrame*, JSC::JSValue, JSC::CallLinkInfo*) + 502 frame #39: 0x0000000105724005 JavaScriptCoreoperationLinkCall + 133
frame #40: 0x000041a36a4042a4
frame #41: 0x000041a36a689a6f
frame #42: 0x000041a36a69d05c
frame #43: 0x0000000104c7f706 JavaScriptCorellint_entry + 120770 frame #44: 0x000041a36a439c21 frame #45: 0x000041a36a56924b frame #46: 0x000041a36a40c685 frame #47: 0x000041a36a568094 frame #48: 0x000041a36a456948 frame #49: 0x000041a36a51ca1b frame #50: 0x000041a36a565fae frame #51: 0x0000000104c7f706 JavaScriptCorellint_entry + 120770
frame #52: 0x000041a36a55a490
frame #53: 0x0000000104c7f706 JavaScriptCorellint_entry + 120770 frame #54: 0x0000000104c7f706 JavaScriptCorellint_entry + 120770
frame #55: 0x000041a36a62c7c5
frame #56: 0x0000000104c61d36 JavaScriptCorevmEntryToJavaScript + 213 frame #57: 0x000000010563f6e5 JavaScriptCoreJSC::Interpreter::executeCall(JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 1157
frame #58: 0x0000000104e178c9 JavaScriptCoreJSObjectCallAsFunction + 809 frame #59: 0x0000000100ff1b59 testgame-mobilese::Object::call(this=0x000060000141eb00, args=size=1, thisObject=0x0000000000000000, rval=0x0000000000000000) at Object.mm:533:30
frame #60: 0x000000010108305f testgame-mobilejsb_global_load_image(this=0x00006000026a8388)::$_4::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned char*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const::'lambda'(int)::operator()(int)::'lambda'()::operator()() at jsb_global.cpp:922:42 frame #61: 0x00000001010823f5 testgame-mobiledecltype(std::declval<jsb_global_load_image(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, se::Value const&)::_4::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned char*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const::'lambda'(int)::operator()(int)::'lambda'()&>()()) std::__1::__invoke[abi:v160006]<jsb_global_load_image(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, se::Value const&)::_4::operator()(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, unsigned char*, int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&) const::‘lambda’(int)::operator()(int)::‘lambda’()&>(__f=0x00006000026a8388) at invoke.h:394:23
frame #62: 0x00000001010823b5 testgame-mobilevoid std::__1::__invoke_void_return_wrapper<void, true>::__call<jsb_global_load_image(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, se::Value const&)::$_4::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned char*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const::'lambda'(int)::operator()(int)::'lambda'()&>(__args=0x00006000026a8388) at invoke.h:487:9 frame #63: 0x000000010108238d testgame-mobilestd::__1::__function::__alloc_func<jsb_global_load_image(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, se::Value const&)::_4::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned char*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const::'lambda'(int)::operator()(int)::'lambda'(), std::__1::allocator<jsb_global_load_image(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, se::Value const&)::_4::operator()(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, unsigned char*, int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&) const::‘lambda’(int)::operator()(int)::‘lambda’()>, void ()>::operator()abi:v160006 at function.h:185:16
frame #64: 0x0000000101081109 testgame-mobilestd::__1::__function::__func<jsb_global_load_image(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, se::Value const&)::$_4::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned char*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const::'lambda'(int)::operator()(int)::'lambda'(), std::__1::allocator<jsb_global_load_image(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, se::Value const&)::$_4::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned char*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const::'lambda'(int)::operator()(int)::'lambda'()>, void ()>::operator()(this=0x00006000026a8380) at function.h:356:12 frame #65: 0x0000000100cf1e62 testgame-mobilestd::__1::__function::_value_func<void ()>::operator()abi:v160006 const at function.h:510:16
frame #66: 0x0000000100cf1e05 testgame-mobilestd::__1::function<void ()>::operator()(this=0x00007fecbf24bf60) const at function.h:1156:12 frame #67: 0x0000000100ffafe3 testgame-mobilecocos2d::Scheduler::update(this=0x0000600003c9ce28, dt=0.76713401) at CCScheduler.cpp:517:13
frame #68: 0x0000000100e744bb testgame-mobile-[MainLoop doCaller:](self=0x0000600001b05340, _cmd="doCaller:", sender=0x0000600000c9ca50) at CCApplication-ios.mm:232:21 frame #69: 0x000000010a6e0f2d QuartzCoreCA::Display::DisplayLinkItem::dispatch(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) + 45
frame #70: 0x000000010a6e22c6 QuartzCoreCA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 1016 frame #71: 0x000000010a6e1dfd QuartzCoreCA::Display::DisplayLink::callback(_CADisplayTimer*, unsigned long long, unsigned long long, unsigned long long, bool, void*) + 639
frame #72: 0x000000010a8139db QuartzCoredisplay_timer_callback(__CFMachPort*, void*, long, void*) + 439 frame #73: 0x00000001067c399f CoreFoundation__CFMachPortPerform + 151
frame #74: 0x00000001067fa4d0 CoreFoundation__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41 frame #75: 0x00000001067f9a66 CoreFoundation__CFRunLoopDoSource1 + 532
frame #76: 0x00000001067f427c CoreFoundation__CFRunLoopRun + 2704 frame #77: 0x00000001067f3409 CoreFoundationCFRunLoopRunSpecific + 557
frame #78: 0x000000010f57c187 GraphicsServicesGSEventRunModal + 137 frame #79: 0x00000001201b33a2 UIKitCore-[UIApplication _run] + 972
frame #80: 0x00000001201b7e10 UIKitCoreUIApplicationMain + 123 frame #81: 0x0000000100caa17d testgame-mobilemain(argc=1, argv=0x00007ff7bf260ca8) at main.m
18
frame #82: 0x00000001029023ee dyld_simstart_sim + 10 frame #83: 0x000000010c1e83a6 dyldstart + 1942
- frame #6: 0x0000000100ff1b59 testgame-mobile
-
Creator 版本: 2.4.3
-
目标平台:ios
-
重现方式:
场景使用spine动画, 勾选自动释放,切换场景后出现
-
之前哪个版本是正常的: iOS 16.0
-
重现概率: 必现

我测试了使用预制体,当我使用计数 decRef()清空计数后。 后续自动回收时还是会闪退。