白鲸出海—让中国互联网服务世界
{{user_info.user_name}}
您当前是白鲸会员
开通VIP,享受更多服务
会员到期时间:{{user_info.expire_date*1000 | formatDatebyDay}}
合作查看次数: {{users_vip_equities.view_cooperation || 0}}次
合作发布次数: {{users_vip_equities.release_cooperation || 0}}次
公司查看次数: {{users_vip_equities.view_company || 0}}次
榜单下载次数: {{users_vip_equities.download_rank || 0}}次
报告下载次数: {{users_vip_equities.download_book || 0}}次
鲸币数量:{{user_info.jingbi}}
发布
当前位置:白鲸出海 >问答 > 正文

如何使用ZeroBrane Studio远程调试Cocos2d-x的Lua脚本

nicole林  • 

ZeroBrane Studio做为一个轻量级的Lua IDE,因为它支持跨平台(支持Windows、Mac和Linux)和支持真机调试(Andorid、IPhone和IPad),所以经常被用来调试Lua。目前,Cocos2d-x通过集成LuaSocket也支持应用ZeroBrane Studio进行测试例的调试(Linux除外)。我们以HelloLua为例,详细描述如何使用ZeroBrane Studio进行iOS模拟器和Android真机的调试。
版本

Cocos2d-x Version 3.0 Beta2
**
iOS模拟器调试测试环境


ZeroBrane Studio (0.39 for mac; MobDebug 0.542)
Mac OS X 10.9
Xcode 5.01

1.将ZeroBrane Studio.app/Contents/ZeroBraneStudio/lualibs/mobdebug/mobdebug.lua这个文件拷贝到cocos2d-x/samples/Lua/HelloLua/Resources目录下。这步过程在Cocos2d-x v3.0 Beta2及以上版本可以略过,引擎已经集成了这个文件。
2.用Xcode打开cocos2d-x/build/cocos2d_samples.xcodeproj之后,先把mobdebug.lua文件加入HelloLua工程,然后在HelloLua/Resources/hello.lua文件里面添加debugger调用的指令,仅需要插入require('mobdebug').start()一句,插入在require "hello2"行之前,如下:



1
2
3
4
5
6
7
local function main()
...
require('mobdebug').start() --<-- only insert this line
require "hello2"
cclog("result is " .. myadd(1, 1))
...
end




3.运行ZeroBrane Studio,点击界面从左上角的Project下面的...按钮, 然后选中cocos2d-x/samples/Lua/HelloLua/Resources目录,将HelloLua的Resources导入到Project下,如图所示:
!(http://cn.cocos2d-x.org/doc/co ... ce.png)
4.打开hello.lua,鼠标点击行号右边的空白处加入断点:
!(http://cn.cocos2d-x.org/doc/co ... nt.png)
5.从ZeroBrane Studio的菜单栏开启Debugger Server:
!(http://cn.cocos2d-x.org/doc/co ... er.png)
6.切换回XCode,运行HelloLua iOS测试例,触发断点(Windows环境下切换回Visual Studio 2012):
!(http://cn.cocos2d-x.org/doc/co ... nt.png)
7.通过debug工具栏,进行step in, step out, step over, continue等相应操作。此处需要注意,ZeroBrane有个地方比较奇怪,以local visibleSize = cc.Director:getInstance():getVisibleSize()这行函数为例,需要step over三次才能走到下一行函数,可能是因为此处有两个函数调用。
!(http://cn.cocos2d-x.org/doc/co ... ar.png)
8.点击View->Watch Window,打开Watch Window,添加要观察的变量:
!(http://cn.cocos2d-x.org/doc/co ... ow.png)
!(http://cn.cocos2d-x.org/doc/co ... ue.png)
9.点击View->Stack Window,还可以看到相应的堆栈信息:
!(http://cn.cocos2d-x.org/doc/co ... fo.png)
Android真机调试测试环境

ZeroBrane Studio (0.39 for mac; MobDebug 0.542)
Android Developer Tools
HTC G17

Android(IPhone或IPad)真机调试的流程和iOS模拟器调试基本相同,主要的区别在于hello.lua中debugger调用的指令,如下:



1
2
3
4
5
6
7
local function main()
...
require('mobdebug').start('192.168.1.110')
require "hello2"
cclog("result is " .. myadd(1, 1))
...
end




其中,192.168.1.110为PC的IP地址,测试手机的wifi IP需要与PC的IP地址同一网段,否则无法调试。



已邀请:

要回复问题请先登录注册