cocos2d-js 調試辦法 斷點調試 Android真機調試

一 使用瀏覽器chrome打開程序,進行調試。跟普通js程序同樣。html

    • 要麼自行搭建服務器,利用python腳本,或者用其餘服務器程序(LAMP或XAMPP)。而後用瀏覽器打開服務器地址。
    • 要麼直接使用cocos提供好的命令行:cocos run –p web

瀏覽器調試好處是,方便,對於小程序或者非native代碼是很是有意義的。但部署到真機後遇到的問題,這就沒法解決了,並且一些native代碼也沒法調試。python

二 使用firefox遠程調試。android

由於cocos2d-js使用spidermonkey做爲js解析引擎,這個玩意就是mozilla派的,因此用firefox作遠程調試。題外話。。。這讓firefox在chrome如日中天的年代又找到了點存在感啊~~~真懷念。web

能夠參考大牛的文章:chrome

http://goldlion.blog.51cto.com/4127613/1359572   不過大牛這裏的配圖有個缺陷,鏈接手機的地址沒有說明。127.0.0.1是用本機模擬器運行時纔用到的,若是是真機,必須是手機的網絡地址。這可讓開發機和手機在同一個wifi網絡中,而後到路由器裏邊找找手機的ip,也能夠用開發機ping一下。小程序

 

調試步驟:瀏覽器

1 firefox 新版(測試在V27)服務器

2 打開cocos2d程序的debug網絡

               在AppDelegate.cpp(在framework裏邊),改寫AppDelegate::applicationDidFinishLaunching()函數,在sc->start()後面加入sc->enableDebugger()的調用app

bool AppDelegate::applicationDidFinishLaunching()

{

// initialize director

Director *director = Director::getInstance();

director->setOpenGLView(EGLView::getInstance());



// turn on display FPS

director->setDisplayStats(true);



// set FPS. the default value is 1.0/60 if you don't call this

director->setAnimationInterval(1.0 / 60);



ScriptingCore* sc = ScriptingCore::getInstance();

sc->addRegisterCallback(register_all_cocos2dx);

sc->addRegisterCallback(register_all_cocos2dx_extension);

sc->addRegisterCallback(register_cocos2dx_js_extensions);

sc->addRegisterCallback(register_all_cocos2dx_extension_manual);

sc->addRegisterCallback(jsb_register_chipmunk);

sc->addRegisterCallback(JSB_register_opengl);

sc->addRegisterCallback(jsb_register_system);

sc->start();



#if defined(COCOS2D_DEBUG) && (COCOS2D_DEBUG > 0)

sc->enableDebugger();

#endif





ScriptEngineProtocol *engine = ScriptingCore::getInstance();

ScriptEngineManager::getInstance()->setScriptEngine(engine);

ScriptingCore::getInstance()->runScript("cocos2d-jsb.js");



return true;

}

 

3 編譯運行 cocos run –p android

4 firefox鏈接手機

在FireFox中,鏈接功能的菜單項缺省是被隱藏的,咱們須要改一下瀏覽器配置。

以下操做

wKiom1MAi-XQnsrdAAG9YOUv1Ng417.jpg

wKioL1MAj_nAQioRAALzL4N7Fhw289.jpg

這樣菜單項就顯示出來了,而後。

wKiom1MAi-bj7diJAAHJCmkGnwU907.jpg

而後,咱們把調試器和設備鏈接起來:(地址填手機的網絡地址,圖中127.0.0.1是由於模擬器運行;端口必須是5086

wKioL1MAj1bhbHAiAAMDi35HT_k909.jpg

wKioL1MAkFexa4djAAL0rsO9pM0445.jpg

彈出一個新窗口,表示鏈接成功。基本1s內就鏈接成功了,若是不成功,再檢查一下cocos程序是否在運行,或者手機ip地址是否正確,或者開發機和手機是否在同一個子網。

wKiom1MAkMOC_zspAAEi4t7DzOw568.jpg

 

5 開始調試

點debugger調試器開始調試。

wKiom1MAkaLSDMyBAAZQR9pby-0371.jpg

 

這個方法也有必定缺陷,也就是必須在cocos程序啓動後才能調試。啓動過程當中作的事情,就很差捕捉了。。。這時候須要用cc.log配合一下了。具體方法請參考前一篇日誌http://www.cnblogs.com/kenkofox/p/3906562.html

相關文章
相關標籤/搜索