1.背景:最近在做cocos2.4版本的v8引擎升级,升级后,发现在运行我们线上游戏会偶现crash。我们使用addr2line的工具发现定位不到源码。
2.问题
2.1想问下官方是如何调试定位由v8crash导致的问题?
2.2想问下3.8版本用v8源码编译v8静态库的参数都有哪些?
@dumganhar
1.背景:最近在做cocos2.4版本的v8引擎升级,升级后,发现在运行我们线上游戏会偶现crash。我们使用addr2line的工具发现定位不到源码。
2.问题
2.1想问下官方是如何调试定位由v8crash导致的问题?
2.2想问下3.8版本用v8源码编译v8静态库的参数都有哪些?
你是升级到哪个版本?
其实 symbol_level=0 这个基本是 symbol 最低等级,以往经验看,最低等级也会有堆栈,但是可能不是特别准确。
如果你要完全开启,可以设置为 symbol_level=2 。
v8从8.0.4升级到11.6.189.22
你们平时v8的crash问题是如何调试的呀
有可能v8静态库没有带符号表。我研究下用ida逆向看看
v8 的稳定性还是很好的。基本上很少情况要去调试 v8。
如果确实要单步调试,你可以编译 v8 的时候,再配置 is_debug=true,同时改 symbol_level=2 ,把生成的 .a 替换到引擎 external 下。然后就可以在 android studio/ xcode / vs 中单步进入 v8 的 API 进行调试了。
好的,我看 tombstone还是定位不到源码,只能试一下IDA了。谢谢
@dumganhar 我发现升级v8后,勾选了场景的autorelease的话,来回切换场景就回复现这个crash,堆栈可以对应的上,想问下是不是和gc有关系,这部分逻辑是在引擎哪里呀,我想按着这个方向排插一下
场景切换的时候,这里会处理资源的自动释放。
我最近也在升级 v8,跑起来了,但是还没上线测试,可以一起交流一下 wx:yanjifa2013
二分改代码法定位
我们是用2.4.7的版本,在这个版本中升级了v8,v8的版本和官方3.8的保持一致,升级后发现这个场景有crash问题。
试了一下,还是会crash。晚点我整理个demo传一下。
这个demo会升级v8引擎,我单独搞一个引擎分支和可以复现crash的demo?然后官方帮忙定位一下 吗