BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #19106同步于 2014/12/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

求助怎么从崩溃线程的堆栈信息中分析崩溃原因?

ytinrete
2014/12/21镜像同步19 回复
呃呃呃,又来麻烦各位大大了真是不好意思 事情是这样的,一个星期前公司项目上线,程序里面集成有testin,所以用户跑游戏崩掉在后台可以看到崩溃数据,现在是要从这些数据中找出崩溃的原因,提出解决方案。其中百分之八十的崩溃都是SIGSEGV(这是神马,只知道似乎跟内存有关而且一定不能吃,嗯)现在问题就来了,得到的数据只有崩溃那个时候的线程堆站数据,符号化之后就变成类似下面这种东西: Crash reason: SIGSEGV Crash address: 0x555b0c58 Thread 10 (crashed) 0 0x555b0c58 1 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunction(int) [CCLuaStack.cpp : 446 + 0x7] 2 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunctionByHandler(int, int) [CCLuaStack.cpp : 492 + 0x9] 3 libcocos2dlua.so!cocos2d::CCLuaEngine::executeNodeEvent(cocos2d::CCNode*, int) [CCLuaEngine.cpp : 129 + 0xb] 4 libcocos2dlua.so!cocos2d::CCNode::onEnter() [CCNode.cpp : 918 + 0x9] 5 libcocos2dlua.so!cocos2d::ui::Widget::onEnter() [UIWidget.cpp : 115 + 0x5] 6 libcocos2dlua.so!cocos2d::CCNode::addChild(cocos2d::CCNode*, int, int) [CCNode.cpp : 614 + 0x9] 7 libcocos2dlua.so!cocos2d::ui::Widget::addChild(cocos2d::CCNode*, int, int) [UIWidget.cpp : 145 + 0x3] 8 libcocos2dlua.so!cocos2d::CCNode::addChild(cocos2d::CCNode*) [CCNode.cpp : 628 + 0x15] 9 libcocos2dlua.so!cocos2d::ui::Widget::addChild(cocos2d::CCNode*) [UIWidget.cpp : 134 + 0x3] 10 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild00 [LuaCocoStudio.cpp : 6866 + 0xb] 11 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild01 [LuaCocoStudio.cpp : 6904 + 0x5] 12 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild02 [LuaCocoStudio.cpp : 6936 + 0x5] 。。。完全看不懂啊,好可怕 我想问的是: 1.。。。。。。这个是神马? 2.这个东西有用吗?还是完全没有价值呢?(求别,这货我拿来分类统计过的,花了好长时间了呢) 3.如果还有点用的话,分析问题的原因,应该从什么地方着手?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
sollian机器人#1 · 2014/12/21
学习
ytinrete机器人#2 · 2014/12/21
还有就是最近在做一个打包工具,因为有很多个渠道,打开eclipse一个一个的打包太麻烦 想照着这个 http://blog.csdn.net/hytfly/article/details/24458133 写一个工具,不知道靠不靠谱 用eclipes自身打包走的流程是什么样的呢?应该,也是,调用那些工具,打包的,吧。。。 呃,要是自己做的工具打包打坏了就麻烦了。 心塞。 归根结底还是自己太弱了,呜QAQ.
ytinrete机器人#3 · 2014/12/21
版大太谦虚惹。 【 在 sollian 的大作中提到: 】 : 学习
apocalypse机器人#4 · 2014/12/21
栈里有 addchild 我还看到了cocostudio ╮(╯_╰)╭ 嗯 我猜崩溃的地方是 cocostudio 画的界面 猜的 无责任猜测 我当年用的时候 studio 还极其不健全 不稳定。。问题一大堆。。。现在studio不了解了。。 栈信息就这么多么? 反正我是猜的
apocalypse机器人#5 · 2014/12/21
突然发现了个问题 thread 10 却出现了addchild 这个child是ui绘制么?(如果是的话。。。。。今天版内帖子主题 都是 异步线程UI绘制咩?) iOS里反正 如果不经过特殊处理。。。线程里 绘制ui 一定崩溃
ytinrete机器人#6 · 2014/12/21
大大你又出现了 这个问题真的好难办呐 都是偶发的,玩着玩着就崩了这样。 比如今天崩溃六千多次,但是只占到启动次数的4%,平时测试几乎没办法测出来 看看人家IOS酱都不到0.5%的崩溃率,安卓怎么可以这么傲娇的?!差评! 报SIGSEGV,每个报告的堆栈信息都不一样,不过也算是大同小异。 刚刚那个的确不是全部的(大大好厉害这你都知道) 全部的在这里: Crash reason: SIGSEGV Crash address: 0x555b0c58 Thread 10 (crashed) 0 0x555b0c58 1 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunction(int) [CCLuaStack.cpp : 446 + 0x7] 2 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunctionByHandler(int, int) [CCLuaStack.cpp : 492 + 0x9] 3 libcocos2dlua.so!cocos2d::CCLuaEngine::executeNodeEvent(cocos2d::CCNode*, int) [CCLuaEngine.cpp : 129 + 0xb] 4 libcocos2dlua.so!cocos2d::CCNode::onEnter() [CCNode.cpp : 918 + 0x9] 5 libcocos2dlua.so!cocos2d::ui::Widget::onEnter() [UIWidget.cpp : 115 + 0x5] 6 libcocos2dlua.so!cocos2d::CCNode::addChild(cocos2d::CCNode*, int, int) [CCNode.cpp : 614 + 0x9] 7 libcocos2dlua.so!cocos2d::ui::Widget::addChild(cocos2d::CCNode*, int, int) [UIWidget.cpp : 145 + 0x3] 8 libcocos2dlua.so!cocos2d::CCNode::addChild(cocos2d::CCNode*) [CCNode.cpp : 628 + 0x15] 9 libcocos2dlua.so!cocos2d::ui::Widget::addChild(cocos2d::CCNode*) [UIWidget.cpp : 134 + 0x3] 10 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild00 [LuaCocoStudio.cpp : 6866 + 0xb] 11 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild01 [LuaCocoStudio.cpp : 6904 + 0x5] 12 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild02 [LuaCocoStudio.cpp : 6936 + 0x5] 13 libcocos2dlua.so + 0x1f5062 14 libcocos2dlua.so + 0x202266 15 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunction(int) [CCLuaStack.cpp : 446 + 0x7] 16 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunctionByHandler(int, int) [CCLuaStack.cpp : 492 + 0x9] 17 libcocos2dlua.so!LuaCocoStudioEventListener::eventCallbackFunc(cocos2d::CCObject*, int) [lua_cocos2dx_cocostudio_manual.cpp : 453 + 0xb] 18 libcocos2dlua.so!cocos2d::ui::Widget::releaseUpEvent() [UIWidget.cpp : 786 + 0x7] 19 libcocos2dlua.so!cocos2d::ui::Widget::onTouchEnded(cocos2d::CCTouch*, cocos2d::CCEvent*) [UIWidget.cpp : 747 + 0x3] 20 libcocos2dlua.so!cocos2d::ui::TouchGroup::ccTouchEnded(cocos2d::CCTouch*, cocos2d::CCEvent*) [UITouchGroup.cpp : 181 + 0xf] 21 libcocos2dlua.so!cocos2d::CCTouchDispatcher::touches(cocos2d::CCSet*, cocos2d::CCEvent*, unsigned int) [CCTouchDispatcher.cpp : 381 + 0xf] 22 libcocos2dlua.so!cocos2d::CCTouchDispatcher::touchesEnded(cocos2d::CCSet*, cocos2d::CCEvent*) [CCTouchDispatcher.cpp : 507 + 0x5] 23 libcocos2dlua.so!cocos2d::CCEGLViewProtocol::handleTouchesEnd(int, int*, float*, float*) [CCEGLViewProtocol.cpp : 334 + 0xb] 24 libcocos2dlua.so!Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeTouchesEnd [TouchesJni.cpp : 42 + 0xf] 25 libdvm.so + 0x1f332 26 dalvik-heap (deleted) + 0x3a582db 27 libdvm.so + 0x49ab5 28 dalvik-heap (deleted) + 0x7df2ee 29 libdvm.so + 0x4e097 30 data@app@com.zhancheng.sanguolua.qh360-1.apk@classes.dex + 0x29e2bf 31 libcocos2dlua.so!Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeTouchesBegin [TouchesJni.cpp : 39 + 0x1] 32 0xffffffff 33 libdvm.so + 0x6e37f 34 libdvm.so + 0x73915 35 data@app@com.zhancheng.sanguolua.qh360-1.apk@classes.dex + 0x191e14 36 data@app@com.zhancheng.sanguolua.qh360-1.apk@classes.dex + 0x191e0e 37 libdvm.so + 0x7376b 38 dalvik-heap (deleted) + 0x7df2ee 39 data@app@com.zhancheng.sanguolua.qh360-1.apk@classes.dex + 0x4d6b6 40 dalvik-heap (deleted) + 0x92d76e 41 dalvik-heap (deleted) + 0x85db06 42 dalvik-heap (deleted) + 0x92d76e 43 libdvm.so + 0x65b99 44 dalvik-heap (deleted) + 0xb8865e 45 dalvik-jit-code-cache (deleted) + 0x631e6 46 data@app@com.zhancheng.sanguolua.qh360-1.apk@classes.dex + 0x191e0e 47 libdvm.so + 0x4df2b 48 dalvik-jit-code-cache (deleted) + 0x216 49 dalvik-LinearAlloc (deleted) + 0x2d7086 50 libdvm.so + 0x2cfba 51 dalvik-LinearAlloc (deleted) + 0x2d7086 52 dalvik-heap (deleted) + 0x852046 53 framework.odex + 0x717d91 54 libdvm.so + 0x5f6bf 55 dalvik-LinearAlloc (deleted) + 0x2d7086 56 dalvik-heap (deleted) + 0x852046 57 libdvm.so + 0x5f6e9 58 libdvm.so + 0x54b0d 59 libdvm.so + 0x54a6b 60 libdvm.so + 0x54a6b 61 libc.so + 0x12e72 62 libc.so + 0x125ca 63 libEGL.so + 0x21c3a 根据统计,类似这几个的见得比较多: 0 decode_fd (deleted) + 0x18064 1 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunction(int) [CCLuaStack.cpp : 446 + 0x7] 2 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunctionByHandler(int, int) [CCLuaStack.cpp : 492 + 0x9] 3 libcocos2dlua.so!cocos2d::extra::CCHTTPRequest::update(float) [CCHTTPRequest.cpp : 353 + 0xb] 4 libcocos2dlua.so!cocos2d::CCScheduler::update(float) [CCScheduler.cpp : 809 + 0x9] 5 libcocos2dlua.so!cocos2d::CCDirector::drawScene() [CCDirector.cpp : 257 + 0x9] 6 libcocos2dlua.so!cocos2d::CCDisplayLinkDirector::mainLoop() [CCDirector.cpp : 1134 + 0x3] 7 libcocos2dlua.so!Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeRender [Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp : 14 + 0x3] 这个跟http请求有关吧。。 0 icudt48l.dat + 0x3a0c20 1 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunction(int) [CCLuaStack.cpp : 446 + 0x7] 2 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunctionByHandler(int, int) [CCLuaStack.cpp : 492 + 0x9] 3 libcocos2dlua.so!cocos2d::CCLuaEngine::executeNodeEvent(cocos2d::CCNode*, int) [CCLuaEngine.cpp : 129 + 0xb] 4 libcocos2dlua.so!cocos2d::CCNode::onEnter() [CCNode.cpp : 918 + 0x9] 5 libcocos2dlua.so!cocos2d::ui::Widget::onEnter() [UIWidget.cpp : 115 + 0x5] 6 libcocos2dlua.so!cocos2d::CCNode::addChild(cocos2d::CCNode*, int, int) [CCNode.cpp : 614 + 0x9] 7 libcocos2dlua.so!cocos2d::ui::Widget::addChild(cocos2d::CCNode*, int, int) [UIWidget.cpp : 145 + 0x3] 8 libcocos2dlua.so!cocos2d::CCNode::addChild(cocos2d::CCNode*) [CCNode.cpp : 628 + 0x15] 9 libcocos2dlua.so!cocos2d::ui::Widget::addChild(cocos2d::CCNode*) [UIWidget.cpp : 134 + 0x3] 10 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild00 [LuaCocoStudio.cpp : 6866 + 0xb] 11 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild01 [LuaCocoStudio.cpp : 6904 + 0x5] 12 libcocos2dlua.so!tolua_CocoStudio_Widget_addChild02 [LuaCocoStudio.cpp : 6936 + 0x5] 0 0x60b15018 1 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunction(int) [CCLuaStack.cpp : 446 + 0x7] 2 libcocos2dlua.so!cocos2d::CCLuaStack::executeFunctionByHandler(int, int) [CCLuaStack.cpp : 492 + 0x9] 3 libcocos2dlua.so!cocos2d::CCLuaEngine::executeSchedule(int, float, cocos2d::CCNode*) [CCLuaEngine.cpp : 175 + 0xb] 4 libcocos2dlua.so!cocos2d::CCTimer::update(float) [CCScheduler.cpp : 203 + 0xb] 5 libcocos2dlua.so!cocos2d::CCScheduler::update(float) [CCScheduler.cpp : 873 + 0x7] 6 libcocos2dlua.so!cocos2d::CCDirector::drawScene() [CCDirector.cpp : 257 + 0x9] 7 libcocos2dlua.so!cocos2d::CCDisplayLinkDirector::mainLoop() [CCDirector.cpp : 1134 + 0x3] 8 libcocos2dlua.so!Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeRender [Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp : 14 + 0x3] balabalabala还有好多好多呢。。。。。。 boss说是给我两个月,希望能想办法把崩溃率降到1% 臣妾真的做不到啊 哎,我也知道这个问题好棘手的,上论坛来也是碰碰运气,没有结果也没关系,感谢前辈一如既往的热心[em56] 【 在 apocalypse 的大作中提到: 】 : 栈里有 addchild 我还看到了cocostudio : ╮(╯_╰)╭ 嗯 我猜崩溃的地方是 cocostudio 画的界面 猜的 无责任猜测 : 我当年用的时候 studio 还极其不健全 不稳定。。问题一大堆。。。现在studio不了解了。。 : ...................
apocalypse机器人#7 · 2014/12/21
矮油 是 android上的crash 栈啊。。。 那我就知道的不多咧。。。。。
ytinrete机器人#8 · 2014/12/21
对哦,前辈主攻是IOS方向的。0A0 没关系,还有两个月,再稍微努力一下吧,要是不小心找到突破口了捏 啊对了,crush栈可以跟我稍微解释一下嘛? 为什么是那个样子排列的?CCLuaStack.cpp : 446 + 0x7 这样子是什么意思呐? 【 在 apocalypse 的大作中提到: 】 : 矮油 是 android上的crash 栈啊。。。 : 那我就知道的不多咧。。。。。
apocalypse机器人#9 · 2014/12/21
【 在 ytinrete 的大作中提到: 】 : 对哦,前辈主攻是IOS方向的。0A0 : : 没关系,还有两个月,再稍微努力一下吧,要是不小心找到突破口了捏 : ................... 后面那个数字 就是指 前边那个文件的第几行。。。 用这个可以直接定位具体语句代码 不过 用lua的话 。。这个信息很容易看不出内容。。。。至少你现在这么些个crash 栈顶都是系统底层。。。定位在哪行也基本属于看不懂的样纸。。。。 告诉你 ccluaengine 里面第400行 那个崩溃。。你也不可能改里面代码不是。。因为还是外面用错了。。