C++ 使用Xcode 12、Xcode 12.1、Xcode 12.2的iPhone模拟器中Cocos2d-x v4.0崩溃

C++ 使用Xcode 12、Xcode 12.1、Xcode 12.2的iPhone模拟器中Cocos2d-x v4.0崩溃,c++,iphone,xcode,cocos2d-iphone,cocos2d-x,C++,Iphone,Xcode,Cocos2d Iphone,Cocos2d X,Cocos2d-x v4.0在所有iPhone模拟器中崩溃。在设备中没有崩溃 glslopt_shader* glslShader = glslopt_optimize(ctx, shaderType, source.c_str(), 0); 每次撞车的时候都在上面。不使用任何着色器。上面的行由精灵创建调用 auto background = Sprite::create(TEX_MM_BG); 如何修复模拟器的崩溃 有了这一点信息,我们帮不了什么忙。 但是,如果我试图正确解释发布的图像,您

Cocos2d-x v4.0在所有iPhone模拟器中崩溃。在设备中没有崩溃

glslopt_shader* glslShader = glslopt_optimize(ctx, shaderType, source.c_str(), 0);
每次撞车的时候都在上面。不使用任何着色器。上面的行由精灵创建调用

auto background = Sprite::create(TEX_MM_BG);
如何修复模拟器的崩溃


有了这一点信息,我们帮不了什么忙。 但是,如果我试图正确解释发布的图像,您将收到“EXC_BAD_ACCESS”异常

这意味着您或多或少地访问一个释放的内存区域,或者通常尝试取消引用指向无效内存地址的指针

唯一可能导致这种错误的参数是
source.c_str()
。 因此,您应该检查
source
的代码路径


在发布版本中,您不会总是看到“空闲后访问”,因为内存没有立即释放到操作系统(这会触发此类错误),它只是标记为“空闲”以允许更快的分配。

您能提供更多详细信息吗?像stacktrace…@Bernd一样,你们可以在截图中看到,我在FWGMainMenu::setupBackground函数中调用background=Sprite::create,它在glslopt\u优化调用中崩溃了……你们可以在上面看到的完整函数调用image@Bernd我以为上面的截图只有xcode stacktrace,还有其他地方吗?我可以看到一些stacktrace,true.source.c_str()不为null,我只是将其与iPhone和模拟器进行了比较。两者都是相同的…在glslopt_optimize for simulator中崩溃…此api的其他输入不为null。奇怪..我强烈猜测在没有金属的旧mac中崩溃?我的2015 mac book pro…不确定它是否支持金属。啊,对。这意味着在发布的代码行不会触发异常。我只是误解了这幅图像。我想某处少了一张支票。您是否有机会调试到ast_声明器_list::hir(exec_list*…是的,在其他地方还有其他问题。对于第一个背景图像,纯Cocos2d v4项目不会崩溃。非常感谢您的回答。