cocos2d / cocos2d-x

Cocos2d-x is a suite of open-source, cross-platform, game-development tools utilized by millions of developers across the globe. Its core has evolved to serve as the foundation for Cocos Creator 1.x & 2.x.
https://www.cocos.com/en/cocos2d-x
18.25k stars 7.06k forks source link

There is some crash happend. CCScheduler.cpp:721 pauseTarget #18094

Open zhaozhantao opened 7 years ago

zhaozhantao commented 7 years ago

Steps to Reproduce: no

I recive some crash log from "Bugly" (http://bugly.qq.com)

In CCScheduler.cpp:721

void Scheduler::pauseTarget(void *target)
{
    CCASSERT(target != nullptr, "target can't be nullptr!");

    // custom selectors
    tHashTimerEntry *element = nullptr;
    HASH_FIND_PTR(_hashForTimers, &target, element);  // crash happend at this line, this line number is 721
    if (element)
    {
        element->paused = true;
    }

SIGSEGV(SEGV_MAPERR)

1 #00 pc 0162fc4c libcocos2dlua.so pauseTarget (/Users/zhaozhantao/me/doc/tank2/trunk/tank2/frameworks/runtime-src/proj.android/../../cocos2d-x/cocos//./base/CCScheduler.cpp:721) [armeabi-v5te]

2 #01 pc 014fe240 libcocos2dlua.so pause (/Users/zhaozhantao/me/doc/tank2/trunk/tank2/frameworks/runtime-src/proj.android/../../cocos2d-x/cocos//./2d/CCNode.cpp:1593) [armeabi-v5te] 3 #02 pc 014fd308 libcocos2dlua.so onExit (/Users/zhaozhantao/me/doc/tank2/trunk/tank2/frameworks/runtime-src/proj.android/../../cocos2d-x/cocos//./2d/CCNode.cpp:1378) [armeabi-v5te] 4 #03 pc 014fd378 libcocos2dlua.so onExit (/Users/zhaozhantao/me/doc/tank2/trunk/tank2/frameworks/runtime-src/proj.android/../../cocos2d-x/cocos//./2d/CCNode.cpp:1383) [armeabi-v5te] 5 #04 pc 015f0628 libcocos2dlua.so setNextScene (/Users/zhaozhantao/me/doc/tank2/trunk/tank2/frameworks/runtime-src/proj.android/../../cocos2d-x/cocos//./base/CCDirector.cpp:1099) [armeabi-v5te] 6 #05 pc 015ed844 libcocos2dlua.so drawScene (/Users/zhaozhantao/me/doc/tank2/trunk/tank2/frameworks/runtime-src/proj.android/../../cocos2d-x/cocos//./base/CCDirector.cpp:284) [armeabi-v5te] 7 #06 pc 015f1c44 libcocos2dlua.so mainLoop (/Users/zhaozhantao/me/doc/tank2/trunk/tank2/frameworks/runtime-src/proj.android/../../cocos2d-x/cocos//./base/CCDirector.cpp:1394) [armeabi-v5te] 8 #07 pc 0098b758 libcocos2dlua.so Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeRender (/Users/zhaozhantao/me/doc/tank2/trunk/tank2/frameworks/runtime-src/proj.android/../../cocos2d-x/cocos//platform/android/jni/Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp:18) [armeabi-v5te] 9 #08 pc 00022145 /data/dalvik-cache/arm/data@app@com.rayjoy.tank2-1@base.apk@classes.dex (oatdata+135493) [armeabi] 10 java: 11 org.cocos2dx.lib.Cocos2dxRenderer.onDrawFrame(Cocos2dxRenderer.java:104) 12 android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522) 13 android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)

zhaozhantao commented 7 years ago

In CCScheduler.cpp:721

void Scheduler::pauseTarget(void *target) { CCASSERT(target != nullptr, "target can't be nullptr!");

// custom selectors tHashTimerEntry *element = nullptr;

//------------------------------------- // line number 721, crash happend at this line HASH_FIND_PTR(_hashForTimers, &target, element);

//-------------------------------------

if (element) { element->paused = true; }

minggo commented 7 years ago

Any code to reproduce it?

zhaozhantao commented 7 years ago

No. Many days happend once.