Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

使用 ZeroBrane Studio 调试 Lua 脚本

Defold 包含一个内置调试器,但也可以将免费开源的 Lua IDE ZeroBrane Studio 作为外部调试器运行。要使用调试功能,需要安装 ZeroBrane Studio。该程序是跨平台的,可以在 macOS 和 Windows 上运行。

从 http://studio.zerobrane.com 下载 “ZeroBrane Studio”。

ZeroBrane 配置

为了让 ZeroBrane 找到您项目中的文件,您需要将其指向 Defold 项目目录的位置。找出此位置的一个便捷方法是使用 Defold 项目根目录中文件的 在桌面中显示 选项。

  1. 右键点击 game.project
  2. 选择 在桌面中显示

Show in Finder

设置 ZeroBrane

要设置 ZeroBrane,请选择 项目 ▸ 项目目录 ▸ 选择...

Set up

一旦设置完成以匹配当前的 Defold 项目目录,就应该能够在 ZeroBrane 中看到 Defold 项目的目录树,并导航和打开文件。

文档后面部分可以找到其他推荐但非必需的配置更改。

启动调试服务器

在开始调试会话之前,需要启动 ZeroBrane 内置的调试服务器。启动它的菜单选项可以在 项目 菜单下找到。只需选择 项目 ▸ 启动调试器服务器

Start debugger

将应用程序连接到调试器

调试可以在 Defold 应用程序生命周期的任何时刻开始,但需要从 Lua 脚本中主动启动。启动调试会话的 Lua 代码如下所示:

如果您的游戏在调用 dbg.start() 时退出,可能是因为 ZeroBrane 检测到问题并向游戏发送了退出命令。由于某种原因,ZeroBrane 需要打开一个文件才能开始调试会话,否则它将输出: “Can’t start debugging without an opened file or with the current file not being saved ‘untitled.lua’).” 在 ZeroBrane 中,打开您添加了 dbg.start() 的文件以修复此错误。

dbg = require "builtins.scripts.mobdebug"
dbg.start()

通过将上述代码插入应用程序,它将连接到 ZeroBrane 的调试服务器(默认通过 “localhost”)并在下一个要执行的语句处暂停。

Debugger server started at localhost:8172.
Mapped remote request for '/' to '/Users/my_user/Documents/Projects/Defold_project/'.
Debugging session started in '/Users/my_user/Documents/Projects/Defold_project'.

现在可以使用 ZeroBrane 中提供的调试功能;您可以单步执行、检查、添加和删除断点等。

调试仅在启动调试的 lua 上下文中启用。在 game.project 中启用 “shared_state” 意味着无论您从哪里启动,都可以调试整个应用程序。

Stepping

如果连接尝试失败(可能是因为调试服务器未运行),您的应用程序将在连接尝试完成后继续正常运行。

远程调试

由于调试是通过常规网络连接(TCP)进行的,这允许进行远程调试。这意味着当您的应用程序在移动设备上运行时,也可以对其进行调试。

唯一需要更改的是启动调试的命令。默认情况下,start() 将尝试连接到 localhost,但对于远程调试,我们需要手动指定 ZeroBrane 调试服务器的地址,如下所示:

dbg = require "builtins.scripts.mobdebug"
dbg.start("192.168.5.101")

这也意味着确保从远程设备有网络连接非常重要,并且任何防火墙或类似软件都允许通过端口 8172 的 TCP 连接。否则,当应用程序尝试连接到您的调试服务器时,可能会卡住。

其他推荐的 ZeroBrane 设置

可以使 ZeroBrane 在调试期间自动打开 Lua 脚本文件。这使得可以单步执行到其他源文件中的函数,而无需手动打开它们。

第一步是访问编辑器配置文件。建议您更改该文件的用户版本。

  • 选择 编辑 ▸ 首选项 ▸ 设置:用户
  • 将以下内容添加到配置文件中:

    - to automatically open files requested during debugging
    editor.autoactivate = true
    
  • 重启 ZeroBrane

Other recommended settings