提问人:iPhoneProcessor 提问时间:6/25/2020 最后编辑:iPhoneProcessor 更新时间:11/21/2020 访问量:339
Cocos2d-x v4.0 在 iPhone 模拟器中崩溃,带有 Xcode 12、Xcode 12.1、Xcode 12.2
Cocos2d-x v4.0 crashing in iPhone Simulator with Xcode 12, Xcode 12.1, Xcode 12.2
问:
Cocos2d-x v4.0 在所有 iPhone 模拟器中崩溃。在设备中没有崩溃
glslopt_shader* glslShader = glslopt_optimize(ctx, shaderType, source.c_str(), 0);
对于上面的行,每次崩溃。不使用任何着色器。上面的行由精灵创建调用。
auto background = Sprite::create(TEX_MM_BG);
如何修复模拟器的崩溃?
答:
1赞
Bernd
11/21/2020
#1
有了这些小信息,我们帮不上什么忙。 但是,如果我尝试相应地解释发布的图像,您会收到“EXC_BAD_ACCESS”异常。
这或多或少意味着您访问释放的内存区域,或者通常尝试取消引用指向无效内存地址的指针。
唯一可能导致此类错误的参数是 。
因此,您应该检查 的代码路径。source.c_str()
source
在发布版本中,您不会始终看到“释放后访问”,因为内存不会立即释放到操作系统(这会触发此类错误),它只是标记为“可用”以允许更快的分配。
评论
0赞
iPhoneProcessor
11/21/2020
source.c_str() 不是 null,我只是将它与 iPhone 和模拟器进行了比较。两者都是一样的......在模拟器的glslopt_optimize内崩溃......此 API 的其他输入不为 null。奇怪。。
0赞
iPhoneProcessor
11/21/2020
我强烈猜测在没有 Metal 的旧 mac 中崩溃?我的 2015 mac book pro...不确定它是否支持 Metal。
1赞
Bernd
11/21/2020
啊,对了。这意味着不会在已发布代码的行处触发异常。我只是误解了图像。我假设某处缺少支票。你有机会调试到 ast_declarator_list::hir(exec_list*....
0赞
iPhoneProcessor
11/21/2020
是的,这是其他地方的其他问题。普通的 Cocos2d v4 项目不会因第一个背景图像而崩溃。非常感谢您的回答。
评论