`
liuqf
  • 浏览: 10340 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

【转】使用 ZeroBrane Studio 和 Eclipse LDT 断点调试 quick-cocos2d-x

 
阅读更多

使用 ZeroBrane Studio 和 Eclipse LDT 断点调试 quick-cocos2d-x

quick-cocos2d-x 是个基于 cocos2d-x 的 Lua Binding 加强版。本文介绍在quick-cocos2d-x中进行断点调试的方法。

为了便于阅读和减少废话,本文有如下假设:

  1. 读者阅读过 quick-x-player 使用说明 和 初窥 Quick-cocos2d-x ;
  2. 读者了解 quick-cocos2d-x 项目的文件夹结构;
  3. 读者安装了 ZeroBrane Studio 0.39 或/和 Eclipse LDT 1.0;
  4. 本文基于 quick-cocos2d-x 提供的 coinflip sample 进行调试。

提纲如下:

  1. 在 ZeroBrane Studio 中进行断点调试
  2. 在 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 的第一行加入下面的代码,让项目启动调试支持。

?View Code 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 。

输出Debugger模块
查看大图

2. require debugger

在 coinflip/scripts/main.lua 的第一行加入下面的代码,让项目启动调试支持。

?View Code 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

    建设工程劳动定额LDT72.1-11-2008\(建筑工程)建设工程劳动定额LDT72.1-11-2008.pdf

    lua eclipse ldt lua开发工具 - 03

    lua eclipse 开发工具

    基于ldt的cocos2d x lua代码提示 cocos2dx版本2 2 3

    总的来说,这个资源包为基于Cocos2d-x 2.2.3和Lua的游戏开发者提供了一个强大的开发环境,包括了代码提示工具ldt的配置和Cocos2d-x的Lua API文档。通过合理利用这些工具,开发者可以更高效地编写游戏逻辑,优化性能...

    Laravel开发-ldt

    【Laravel开发-ldt】是一个专注于Laravel框架的调试工具,它为开发者提供了一种高效的方式来检测和优化他们的Laravel应用。Laravel是PHP世界中一个非常流行的开源Web应用程序框架,以其优雅的语法和强大的功能深受...

    2008建设工程劳动定额 装饰工程

    LDT73.1-4-2008建设工程劳动定额 装饰工程

    GDTR GDT LDTR LDT寄存器说明

    GDT 包含系统使用的代码段、数据段、堆栈段和特殊数据段描述符,以及所有任务局部描述符表 LDT 的描述符。 在 IA-32 处理器中,段选择器(selector)是一个 16 位的值,高 13 位用于索引 GDT 或 LDT 中的段描述符,...

    利用LDT和GDT的检测方法

    ### 利用LDT和GDT的检测方法 #### 概述 在现代计算机系统中,虚拟化技术被广泛应用于服务器、云计算和个人计算环境中。为了提高资源利用率、增强安全性和隔离性,虚拟机(Virtual Machine,简称VM)成为了实现这些...

    lua_eclipse64.zip

    【标签】"luaeclipse64" 指明了这个软件包是针对Lua语言和64位操作系统的Eclipse集成环境,表明用户可以在64位的Windows、Linux或macOS等系统上使用此工具进行Lua编程。 【压缩包子文件详细内容】 1. `.eclipse...

    debuuf.zip_LDT修改器_SPF解包_latale Extractor_spf打包工具_登录

    综上所述,"debuuf.zip"这个压缩包包含了一整套工具,用于LDT文件的修改和SPF文件的解包与打包,这些都是游戏调试和自定义的重要步骤。在使用这些工具时,用户需要了解基本的文件格式知识,同时遵循适当的使用规则,...

    操作系统篇-分段机制与GDT、LDT.docx

    LDT本身也是一个段,其描述符存储在GDT中,访问LDT时需要使用段选择符,并且LDT的段选择符、基址和限长需要放置在LDTR(Local Descriptor Table Register)寄存器中。 #### 五、段选择符 在保护模式下,传统的段...

    ldt文件编辑器

    ldt文件编辑器,可在随意编辑LDT灯具文件

    lua 中的eclipse插件lua development tools,在原有的基础上实现工程函数跳转及提示

    在深入探讨“lua中的eclipse插件lua development tools(LDT)”如何在原有功能上进一步实现工程函数跳转及提示之前,我们首先需要对Lua语言、Eclipse集成开发环境(IDE)、以及LDT插件的基本概念有清晰的理解。...

    建筑工程基础定额土建PDF

    1. **总则**:阐述定额的编制原则、适用范围、使用方法等,为读者提供整体理解和应用指南。 2. **分部分项工程定额**:详细列出建筑工程中的各个分项工程,如地基处理、砌筑工程、混凝土与钢筋混凝土工程、钢结构...

    matlab匹配滤波代码-ROAR-LDT-Public:ROAR-LDT-公共

    matlab匹配滤波代码在线快速阅读能力评估(ROAR) 用词汇决策任务测量...每次试验均编码了React时间(rt),准确性(acc),刺激(单词),单词长度(worrdLength),是否为实字/伪字(realpseuudo)和受试者ID(sub

    ldt.rar_V2

    这是一个头文件,通常包含常量定义、数据结构和函数原型,为ldt.c和其他使用LDT功能的模块提供接口。它可能定义了LDT相关的结构体,如段描述符结构,以及访问LDT的函数声明。 5. **Linux内核版本管理**: 版本号...

    LDT.rar_ads7816

    标题中的“LDT.rar_ads7816”很可能是指一个关于LED灯条控制系统的项目,其中涉及到了ADS7816模拟数字转换器。这个压缩包可能包含了与该系统相关的代码、设计文档或其他资源。 描述中提到的“亮灯条,p89c668,74ls...

    配光曲线GR-HID-120NR-55C90-NWRV 120W.uld

    灯具配光曲线的LDT文件 GR-HID-120NR-55C90-NWRV 120W.uld 可供下载使用! 灯具配光曲线的LDT文件 GR-HID-120NR-55C90-NWRV 120W.uld 可供下载使用!

    lua 编辑器

    - **Eclipse**:通过Luna Lua或ZeroBrane Studio等插件,Eclipse也能成为强大的Lua IDE。 3. **压缩包中的文件**:"LuaForWindows_v5.1.4-45.exe" 这个文件看起来是Lua for Windows的安装程序,它集成了Lua解释器...

Global site tag (gtag.js) - Google Analytics