原文:http://www.cnblogs.com/respawn/archive/2012/11/11/2764894.html
cocos2d-x开发包中内置了lua,而且也内置了tolua++,提供了lua对C++的支持.在官网下载的开发包中的sample就包含了
lua的实例.如何去调试项目中的lua代码呢? 今天的主题就是在cocos2d-x中调试lua代码.
有两个工具可以选择,一个简单点,一个复杂点.
1. Decoda(商用,需要收费,而且很贵,不过有好心人分享了破解版)
2. LuaEdit(开源)
我的意思不是在评价这两个debug工具,而是采用两种工具使用的方式难易.
还是先说说简单容易操作的方式吧.这个不需要改动代码.(Decoda)
我是在window上面编译的HelloLua sample,工具就是VS2010. debug模式编译.这个就不用多说了吧.生成的文件在Debug.win32
目录下面,而且包含了很多的链接库文件.
启动Decoda,在Debug选项中选择Start Debugging[F5],需要做的就是在Commad选项中选择执行debug的文件的绝对路径.
下面就开始debug,但是会提示一个错误:
很清晰,在cocos2d-x的后台输出了,提示我们找不到hello.lua文件.当然也是找不到hello2.lua文件的.
这个是因为路径的问题,我没有配置vs,导致编译后生成的文件不是在当前项目的文件夹下,所以找不到lua文件,那就到HelloLua sample
文件夹下面将Resource文件夹下面的文件都拷贝到当前目录就可以了.然后再执行debug就可以看到游戏画面了.注意查看当前后台输出
信息,是正常的,这个需要确认.
注意现在还没有插入断点,所以关闭现在的debug,然后再lua文件中插入断点再重复执行刚才的操作就可以实现debug了.
我只是假设性的随便添加了一个watch target,结果可以看上图.
在Decoda的文件包中有使用文档,E文的,简明的教程.Decoda有两种使用方式,而我只是简单介绍了注入宿主程序的方式,没有介绍attack
宿主进程的方式,可以去参考文档.
2 复杂的方式是使用LuaEdit进行调试.LuaEdit提供了Remote debug模式,不过你在调试的时候需要在宿主机上面开启remote debugger.
LuaEdit提供了编程需要的文件和库,需要按照官网文档的方式做.
不好意思了,这个也不用翻译了,大家都看得懂.
说了那么多都是在windows上面debug的方式,但是这些软件在linux上面都不可以使用. 不知道在linux下面有没有这样方便
的软件.实在不行只能自己动手了.