使用 ZeroBrane Studio 和 Eclipse LDT 断点调试 quick-cocos2d-x
quick-cocos2d-x 是个基于 cocos2d-x 的 Lua Binding 加强版。本文介绍在quick-cocos2d-x中进行断点调试的方法。
为了便于阅读和减少废话,本文有如下假设:
- 读者阅读过 quick-x-player 使用说明 和 初窥 Quick-cocos2d-x ;
- 读者了解 quick-cocos2d-x 项目的文件夹结构;
- 读者安装了 ZeroBrane Studio 0.39 或/和 Eclipse LDT 1.0;
- 本文基于 quick-cocos2d-x 提供的 coinflip sample 进行调试。
提纲如下:
- 在 ZeroBrane Studio 中进行断点调试
- 在 Eclipse LDT 中进行断点调试
一、 在ZeroBrane Studio中进行断点调试
ZeroBrane Studio是一个用Lua写成的跨平台Lua IDE。界面使用 wxLua 实现。
1. 调试模块
ZeroBrane Studio 使用 modbdebug 模块(位于 [ZeroBrane]/lualibs/mobdebug/mobdebug.lua) 实现调试支持。为了让项目找到这个模块,我采用最简单的方法,将该模块复制进入 coinflip 的 scripts 文件夹。
若不希望这样粗暴,可采用另外两种方法,参考: Remote debugging
2. require mobdebug
在 coinflip/scripts/main.lua 的第一行加入下面的代码,让项目启动调试支持。
1 |
require("mobdebug").start() |
3. 启动调试服务器
在 ZeroBrane Studio 中选择 Project->Start Debugger Server
命令。如果该命令是灰色的,说明调试服务器已经启动了。
4. 加断点
编辑 game.lua 文件,在32行 game.enterChooseLevelScene()
处选择 Project -> Toggle BreakPoint
加入断点。
5. 启动 quick-player
在 quick-player 中启动 coinflip 项目,ZeroBrane Studio 会自动停在 main.lua 中。按 Project -> Continue
继续运行,游戏界面出现。
单击游戏中的 “Start” 按钮,调试停止在 game.lua 中的断点处。如下图所示:
6. 进入源码调试
若要进入框架内部调试,可以取消 main.lua 中的CCLuaLoadChunksFromZip("res/framework_precompiled.zip")
调用,然后将 [quick-cocos2d-x]/framework
复制的 coinflip/scripts/
文件夹,这样在调试的时候,就可以进入框架内部了。如下图所示:
二、 在Eclipse LDT 中进行断点调试
LDT(Lua Development Tools)是一个 Eclipse 插件,支持Lua语言的编写和调试。
1. 调试模块
LDT 使用 另一个调试模块来实现调试支持。LDT可以自动生成这个模块。
单击 Run -> Debug Configurations
菜单,新建一个 Lua Attach to Application
配置,点击其中的Lua Debugger Client
将模块输出到 coinclip 的 scripts 文件夹,默认文件名为 debugger.lua 。
2. require debugger
在 coinflip/scripts/main.lua 的第一行加入下面的代码,让项目启动调试支持。
1 |
require("debugger")("127.0.0.1", 10000, "luaidekey") |
这里的 luaidekey 是调试过程中IDE用来保持会话的键名,与上面 Debug Configurations 配置界面中的 IDE Key 相同。
3. 启动调试服务器
单击 Run -> Debug Configurations
菜单,选择刚才新建的配置,单击 Debug 按钮。
4. 加断点
编辑 game.lua 文件,在32行 game.enterChooseLevelScene()
处加入断点。
5. 启动 quick-player
在 quick-player 中启动 coinflip 项目,单击游戏中的 “Start” 按钮,调试停止在 game.lua 中的断点处。如下图所示:
若要进入 framework 源码内部调试,见上方的 6. 进入源码内部调试 。
关于LDT更详细的调试信息,可以阅读 Debugging a Lua program 。
相关推荐
建设工程劳动定额LDT72.1-11-2008\(建筑工程)建设工程劳动定额LDT72.1-11-2008.pdf
lua eclipse 开发工具
总的来说,这个资源包为基于Cocos2d-x 2.2.3和Lua的游戏开发者提供了一个强大的开发环境,包括了代码提示工具ldt的配置和Cocos2d-x的Lua API文档。通过合理利用这些工具,开发者可以更高效地编写游戏逻辑,优化性能...
【Laravel开发-ldt】是一个专注于Laravel框架的调试工具,它为开发者提供了一种高效的方式来检测和优化他们的Laravel应用。Laravel是PHP世界中一个非常流行的开源Web应用程序框架,以其优雅的语法和强大的功能深受...
LDT73.1-4-2008建设工程劳动定额 装饰工程
GDT 包含系统使用的代码段、数据段、堆栈段和特殊数据段描述符,以及所有任务局部描述符表 LDT 的描述符。 在 IA-32 处理器中,段选择器(selector)是一个 16 位的值,高 13 位用于索引 GDT 或 LDT 中的段描述符,...
### 利用LDT和GDT的检测方法 #### 概述 在现代计算机系统中,虚拟化技术被广泛应用于服务器、云计算和个人计算环境中。为了提高资源利用率、增强安全性和隔离性,虚拟机(Virtual Machine,简称VM)成为了实现这些...
【标签】"luaeclipse64" 指明了这个软件包是针对Lua语言和64位操作系统的Eclipse集成环境,表明用户可以在64位的Windows、Linux或macOS等系统上使用此工具进行Lua编程。 【压缩包子文件详细内容】 1. `.eclipse...
综上所述,"debuuf.zip"这个压缩包包含了一整套工具,用于LDT文件的修改和SPF文件的解包与打包,这些都是游戏调试和自定义的重要步骤。在使用这些工具时,用户需要了解基本的文件格式知识,同时遵循适当的使用规则,...
LDT本身也是一个段,其描述符存储在GDT中,访问LDT时需要使用段选择符,并且LDT的段选择符、基址和限长需要放置在LDTR(Local Descriptor Table Register)寄存器中。 #### 五、段选择符 在保护模式下,传统的段...
ldt文件编辑器,可在随意编辑LDT灯具文件
在深入探讨“lua中的eclipse插件lua development tools(LDT)”如何在原有功能上进一步实现工程函数跳转及提示之前,我们首先需要对Lua语言、Eclipse集成开发环境(IDE)、以及LDT插件的基本概念有清晰的理解。...
1. **总则**:阐述定额的编制原则、适用范围、使用方法等,为读者提供整体理解和应用指南。 2. **分部分项工程定额**:详细列出建筑工程中的各个分项工程,如地基处理、砌筑工程、混凝土与钢筋混凝土工程、钢结构...
matlab匹配滤波代码在线快速阅读能力评估(ROAR) 用词汇决策任务测量...每次试验均编码了React时间(rt),准确性(acc),刺激(单词),单词长度(worrdLength),是否为实字/伪字(realpseuudo)和受试者ID(sub
这是一个头文件,通常包含常量定义、数据结构和函数原型,为ldt.c和其他使用LDT功能的模块提供接口。它可能定义了LDT相关的结构体,如段描述符结构,以及访问LDT的函数声明。 5. **Linux内核版本管理**: 版本号...
标题中的“LDT.rar_ads7816”很可能是指一个关于LED灯条控制系统的项目,其中涉及到了ADS7816模拟数字转换器。这个压缩包可能包含了与该系统相关的代码、设计文档或其他资源。 描述中提到的“亮灯条,p89c668,74ls...
灯具配光曲线的LDT文件 GR-HID-120NR-55C90-NWRV 120W.uld 可供下载使用! 灯具配光曲线的LDT文件 GR-HID-120NR-55C90-NWRV 120W.uld 可供下载使用!
- **Eclipse**:通过Luna Lua或ZeroBrane Studio等插件,Eclipse也能成为强大的Lua IDE。 3. **压缩包中的文件**:"LuaForWindows_v5.1.4-45.exe" 这个文件看起来是Lua for Windows的安装程序,它集成了Lua解释器...