3.8.2 iOS cc::gfx::CCMTLBuffer::encodeBuffer 崩溃

Firebase后台捕获到大量崩溃,错误信息如下,请各路大佬帮忙看看

我也遇到了,3.8.5的版本

无解。不过谢谢你打消了我升级引擎的念头

2D项目还是3D项目?是必现的吗?

这种C++的错误,基本就是前不着村后不着店的程度,我不知道官方有什么好的捕捉错误根源的机制还

3.8.5 2D项目,也是大量这种报错,不是必现但是概率很高

3.8.2 3D项目。无法必现,线上崩溃率10%

有条件的话,可以关闭线程分离。
下图中DETACH_DEVICE_THREAD设置成false

关闭线程分离后宕机,会有准确的堆栈位置,可以知道上层挂在哪里。

目前的信息确实很难推断问题在哪里。

有条件的话,是指什么呢?
关闭这个有没有什么副作用

副作用是帧率会发生变化,上升和下降都有可能。
有条件是指需要重新编译二进制,这样就需要发版本了。

发版本没问题;
帧率要观察下,如果影响太大就不行了

我预期不会有太大变化。

好的;那我们下个版本试试

堆栈信息详细了一点:

Crashed: com.apple.main-thread
0  ABC-mobile              0x981c88 cc::gfx::CCMTLBuffer::encodeBuffer(cc::gfx::CCMTLCommandEncoder&, unsigned int, unsigned int, cc::gfx::ShaderStageFlagBit) + 4317584520
1  ABC-mobile              0x9852b8 cc::gfx::CCMTLCommandBuffer::bindDescriptorSets() + 4317598392
2  ABC-mobile              0x984f18 cc::gfx::CCMTLCommandBuffer::draw(cc::gfx::DrawInfo const&) + 4317597464
3  ABC-mobile              0x9b2f94 cc::pipeline::RenderQueue::recordCommandBuffer(cc::gfx::Device*, cc::scene::Camera*, cc::gfx::RenderPass*, cc::gfx::CommandBuffer*, unsigned int) + 169704
4  ABC-mobile              0xa7a178 cc::framegraph::CallbackPass<cc::pipeline::ForwardStage::render(cc::scene::Camera*)::RenderData, cc::pipeline::ForwardStage::render(cc::scene::Camera*)::$_1&>::execute(cc::framegraph::DevicePassResourceTable const&) + 2396
5  ABC-mobile              0x9692f0 cc::framegraph::DevicePass::execute() + 4317483760
6  ABC-mobile              0x96ede0 cc::framegraph::FrameGraph::execute() + 4317507040
7  ABC-mobile              0xa77eb0 cc::pipeline::ForwardPipeline::render(std::__1::vector<cc::scene::Camera*, std::__1::allocator<cc::scene::Camera*>> const&) + 976388
8  ABC-mobile              0x882aa4 cc::Root::frameMoveEnd() + 4316539556
9  ABC-mobile              0x76ba30 js_cc_Root_frameMove(se::State&) + 4315396656
10 ABC-mobile              0x819ec8 jsbFunctionWrapper(v8::FunctionCallbackInfo<v8::Value> const&, bool (*)(se::State&), char const*) + 4316110536
11 ABC-mobile              0x2871e14 Builtins_CallApiCallbackGeneric + 7221812
12 ABC-mobile              0x2870364 Builtins_InterpreterEntryTrampoline + 7214980
13 ABC-mobile              0x2870364 Builtins_InterpreterEntryTrampoline + 7214980
14 ABC-mobile              0x2870364 Builtins_InterpreterEntryTrampoline + 7214980
15 ABC-mobile              0x2870364 Builtins_InterpreterEntryTrampoline + 7214980
16 ABC-mobile              0x2870364 Builtins_InterpreterEntryTrampoline + 7214980
17 ABC-mobile              0x286e48c Builtins_JSEntryTrampoline + 7207084
18 ABC-mobile              0x286e174 Builtins_JSEntry + 7206292
19 ABC-mobile              0x2439370 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) + 2795408
20 ABC-mobile              0x2438c7c v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) + 2793628
21 ABC-mobile              0x237a9e0 v8::Object::CallAsFunction(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) + 2014720
22 ABC-mobile              0x81b9fc se::Object::call(std::__1::vector<se::Value, std::__1::allocator<se::Value>> const&, se::Object*, se::Value*) + 4316117500
23 ABC-mobile              0x813318 cc::EventDispatcher::dispatchTickEvent(float) + 4316082968
24 ABC-mobile              0x8ac888 bool cc::event::BusEventListenerContainer::broadcast<cc::events::Tick, float&>(float&) + 4316711048
25 ABC-mobile              0x8ac02c cc::Engine::tick() + 4316708908
26 QuartzCore                     0xab270 CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) + 48
27 QuartzCore                     0xaa860 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 876
28 QuartzCore                     0xaa400 CA::Display::DisplayLink::dispatch_deferred_display_links(unsigned int) + 360
29 UIKitCore                      0xc604c _UIUpdateSequenceRun + 84
30 UIKitCore                      0xc7b64 schedulerStepScheduledMainSection + 208
31 UIKitCore                      0xc67dc runloopSourceCallback + 92
32 CoreFoundation                 0x72ce4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
33 CoreFoundation                 0x72c78 __CFRunLoopDoSource0 + 172
34 CoreFoundation                 0x719fc __CFRunLoopDoSources0 + 232
35 CoreFoundation                 0x70c3c __CFRunLoopRun + 840
36 CoreFoundation                 0x95700 CFRunLoopRunSpecific + 572
37 GraphicsServices               0x1190 GSEventRunModal + 168
38 UIKitCore                      0x3ca240 -[UIApplication _run] + 816
39 UIKitCore                      0x3c8470 UIApplicationMain + 336
40 ABC-mobile              0x2145c main + 38 (main.mm:38)
41 ???                            0x1c0327ad8 (缺少)

渲染3D场景时挂掉了,场景里有什么特别的物件吗?

不知道怎么算特别。不是必现的,玩家进入一场战斗,闪退了。 重登上来会回到同一场战斗,这次没闪退,但是场景的东西应该是一样的。

没有什么头绪,内存占用正常吗?

可以看看是不是脏数据的问题,脏数据的节点信息你在场景看不到,但是存在于场景或者预制体中

大部分内存偏低,可用内存剩200M以内。但也有一些剩余600多M的也有出现。

这个怎么看啊,麻烦指教一二