iOS版本 glTexImage2D 报错 EXC_BAD_ACCESS

  • Creator 版本:2.0.8

  • 目标平台: iOS

  • 详细报错信息,包含调用堆栈:见下图

  • 重现方式:随机crash ipad几率比较高 无固定重现方式

  • 出现概率:5-10%

@jare @Knox

我跟踪了一下内存地址,log贴在下面。

第一次
使用这个地址的位置不清楚
copiedData 0x1152c0000
free 0x1152c0000

第二次
在ttf.js的_updateTexture fillText CanvasBufferUpdatedCallback里分配的内容
在glTexImage2D的时候使用
最后释放 没有问题
fillText copiedData 0x1152c0000
gl.texImage2D pixels 0x1152c0000
free 0x1152c0000

第三次
和第二次一样 但是不知道什么时间释放的内存
等到使用的时候就crash了
fillText copiedData 0x1152c0000
free 0x1152c0000
gl.texImage2D pixels 0x1152c0000 crash

请问什么情况有可能会导致这种问题?
有什么办法能追踪错误的那次释放是在哪里发生的吗?

内存占用多少?

150M左右

这个问题在我们项目里也存在,至今未找到原因,也是概率性出现。CCC 版本2.1.0

ipad 是什么型号,内存多少?

ipadMini2
12.1.4
总内存应该1G吧
游戏运行最多占用150M

我们也有遇到这个情况,大部分出现在启动的时候,与设备无关,各种设备都出现过,但是不必现。

2.0.5 ios原生。这几个崩溃概率很高,但无固定重现方法

我们在 2.0.9 修复了两个 iOS 上比较常见的崩溃问题,以及 Spine 相关的一个崩溃问题。建议尽快升级!如果你们升级后还是有崩溃,特别是 5% 这么大概率的情况,麻烦把 Demo 发给我们!

早上好,改了哪两个崩溃呢,可以发github commit看下吗。项目大了升级也比较麻烦。先看下能不能把修改合进来

https://github.com/cocos-creator/cocos2d-x-lite/pull/1681
https://github.com/cocos-creator/cocos2d-x-lite/pull/1659
https://github.com/cocos-creator/cocos2d-x-lite/pull/1687
https://github.com/cocos-creator/cocos2d-x-lite/pull/1629

借贴一问,我是1.10.2,是不是不会发布fix了。。
目前有3种crash现象
1、释放cc.AudioClip时,如果此时这个AudioClip被多个player播放且有一个以上的player在这时正好播放完成,就会crash,这个在AudioEngine的源码里面定位到了,是因为C++迭代器的索引在遍历过程中发生变化。这个问题对于短音效简直是灾难,比如非常频繁的子弹音,然后退出这个界面,导致资源被释放
2、iOS在启动游戏时,低概率刚看到闪屏就crash了,堆栈在执行main.js时就出现异常
3、在游戏过程中,低概率随机crash,感觉跟websocket的心跳包有关系
以上这几个crash困扰了几天,不知道贵团队是否还会更新1.x版本。2.x升级需要修改的api太多了,如今代码量有点大,修改起来很费劲,如果能给fix的办法,我自己动手来修复也可以的
@jare

3 可以尝试用 https://github.com/cocos-creator/cocos2d-x-lite/pull/1681 修复
1 和 2 无法确定,建议升级上来试试。

1.10 之前在论坛发过 1.10.3,只修复了若干个编辑器问题,这个是最终版,不会再发新版本了。

问题1可以参考这个 CrashIfClientProvidedBogusAudioBufferList崩溃 https://github.com/drelaptop/cocos2d-x/commit/adf094e047bcb9a51b0b75141966b85912a853ac

1赞

看了 @caochao 回复的提交应该是对应的这个 PR https://github.com/cocos2d/cocos2d-x/pull/19227 @minggo 我们可以把这个 PR 合到 Creator 吗?

可以,二者用的音频库是一样的。

1赞

我们已经进行了相关修复,详见 PR https://github.com/cocos-creator/cocos2d-x-lite/pull/1744

@jare 给的链接404

链接已更新

似乎还有问题,继续跟进中