Studio 提供了许多调试工具和工作流程,这些工具和工作流程通常在集成开发环境 (IDEs) 中可以找到。它们帮助您在脚本运行时检查和解决错误。
断点调试
断点是检查点,可以在特定行暂停或“中断”脚本的执行。您可以利用这些暂停来检查和调试您的游戏,监视 变量,并检查 调用堆栈。断点是调试函数最有效的方法之一,因此它们是最重要的调试工具之一。
管理
在 脚本编辑器 中,您可以在任何时候 插入 多种类型的断点,并编辑断点的配置,包括在游戏测试会话期间。如果您在游戏测试会话期间编辑断点,这些编辑在您完成会话后仍然会保留。您还可以编辑正在暂停您游戏测试会话的断点,但更改不会在下一个游戏测试会话之前生效。
插入
断点有多种变体,可以在任何可执行代码行插入,如下所示:
要在代码行插入标准断点,请单击其行号右侧的边距。或者,右键单击边距并选择 插入 断点。断点图标显示为红色圆圈。

禁用
要暂时禁用断点而不 删除 它,请使用以下任一工作流程:
- 单击断点的图标。
- 右键单击断点的图标并选择 禁用断点。
- 编辑 断点并切换其 启用 复选框。
禁用的断点显示为其启用图标的空心版本,例如,禁用的标准断点为空心圆,禁用的日志点为空心菱形。


删除
要删除断点,请中间单击其图标或右键单击其图标并选择 删除断点。
编辑
您可以在任何时候编辑断点的配置,包括在游戏测试会话期间。如果您在游戏测试会话期间编辑断点,这些编辑在您完成会话后仍然会保留。您还可以编辑正在暂停您游戏测试会话的断点,但更改不会在下一个游戏测试会话之前生效。
要编辑断点:
右键单击断点图标并选择 编辑断点。
在 编辑断点 窗口中,根据需要配置断点。您可以将这些配置混合在一起,以最好地满足您的调试需求。
选项 描述 条件 一个可选的表达式,用于确定断点是否激活。如果条件为空,则断点始终激活。如果条件存在,则断点变为 条件断点,仅在条件为真时激活。例如,如果您希望断点仅在变量 var 等于 10 时激活,请将条件设置为 var == 10。 日志 消息 当断点被触发时,打印到 输出 窗口的表达式。日志消息的格式与 print() 语句的格式相同。例如,将日志消息设置为 "变量的值:", var 以输出与 print("变量的值:", var) 相同的消息。 继续 执行 确定断点激活时是否暂停脚本。此选项默认禁用,除非插入的断点是 日志点。 在命中时移除断点 如果选中,断点将在第一次游戏测试会话后自动移除自己,有效地使其成为 临时 断点。 触发于 断点的 上下文 决定它是否应在 客户端(客户端脚本)、服务器(服务器脚本)或 编辑(调试 插件 脚本)上激活。如果您选择 自定义上下文,窗口将指示当前触发上下文。
工作流程
断点调试的典型工作流程如下:
打开您想要调试的脚本,并在您想要检查的代码行上 插入断点。
从 Studio 的中间层 启动游戏测试 以开始调试。

当脚本命中断点时,游戏测试会话 暂停,除非该断点被 配置 为继续执行。断点上方的黄色箭头指示下一行将执行的代码。

要在命中断点后继续执行代码,请单击中间层中的 恢复脚本。

您还可以使用中间层中的逐步按钮逐行执行代码:

操作 快捷键 描述 逐步进入 F11 逐步进入 按钮将调试器移动到当前行的函数代码中。如果当前行没有函数,调试器将移动到下一行。 逐步跳过 F10 逐步跳过 按钮将调试器移动到下一行代码,不进入函数。 逐步退出 ShiftF11 逐步退出 按钮将调试器从当前函数移出,并移动到函数调用后的下一行代码。如果当前行不在函数内,调试器将移动到下一行。 当您完成当前会话的调试时,单击 停止 按钮。

监控
Studio 包含多个窗口和工具,以在调试时监控变量值和函数执行。通过这些信息,您可以找到脚本中大多数问题的根本原因。

断点
断点 窗口是一个统一视图,显示所有脚本中的所有断点。要打开它,请从 Studio 的 脚本 选项卡工具栏中单击 断点,或导航到 窗口 ⟩ 调试 菜单并切换 断点。
在窗口中,脚本 和 行 列始终显示,您可以通过右上角的 ⋮ 菜单切换其他 配置 列的显示。在 脚本 列中,右键单击任何断点以显示选项菜单,以 编辑、禁用/启用、删除 或跳转到脚本中的断点行。

在调试会话中,最左侧的列显示 (x3),表示该断点的多个上下文(客户端、服务器、编辑)。通过展开任何断点的分支,您可以单击特定上下文旁边的图标,以 禁用/启用 该上下文,例如仅在 客户端 上下文中禁用断点,同时在 服务器 上下文中保持启用。

调用堆栈
调用堆栈 窗口可以从 Studio 的 脚本 选项卡工具栏或 窗口 ⟩ 调试 菜单访问,显示调试器在达到断点时将要执行的代码行。如果您在其他函数内部调用函数,它会指示这些函数被调用的行,让您确认实际调用流程是否与预期流程匹配。


当脚本在断点处暂停时,使用中间层中的逐步按钮逐步进入、跳过或退出函数/行,如 工作流程 中所述。

监视
监视 窗口可以从 Studio 的 脚本 选项卡工具栏或 窗口 ⟩ 调试 菜单访问,让您在逐步通过断点时主动监视变量和表达式的值。
变量 选项卡显示当前 作用域 中的变量信息,可以通过单击窗口上方的 所有 作用域 按钮进行过滤。展开一个分支显示该变量或实例的成员及其值。您还可以通过在 脚本编辑器 中双击突出显示任何变量,右键单击并从弹出菜单中选择 添加 监视 来监视任何变量。


脚本编辑器
调试器与 脚本编辑器 集成。当您的游戏在脚本中的断点处暂停时,您可以将鼠标悬停在变量名称上以查看其值。例如,您可以查看表的组成及其包含的键/值。

其他调试工具
除了调试器,Studio 还提供其他调试工具,以帮助您修复游戏中的问题和错误。
命令栏
命令栏 允许您在游戏运行时运行 Luau 命令。它可以在 Studio 的 窗口 ⟩ 脚本 菜单中找到,并在 开发者控制台 中可用。
开发者控制台
开发者控制台 提供了广泛的详细信息,包括客户端和服务器输出、内存使用情况、网络性能等。要在测试或玩游戏时打开控制台,请在聊天中输入 /console 或按 F9。
日志文件
当脚本在 Studio 或玩家应用中打印或出错时,应用会在本地文件系统中记录消息到日志文件。这些文件的位置因操作系统而异。
Windows
要访问 Windows 上的日志文件:
- 打开 文件资源管理器。
- 导航到 %LOCALAPPDATA%\Roblox\logs 目录。
- 双击日志以打开它。具有相同 XXXXX 值的日志来自同一 Studio 会话。
Mac
要访问 Mac 上的日志文件:
- 打开 Finder。
- 在菜单栏中,选择 前往 ⟩ 前往文件夹...。
- 在对话框中,输入 ~/Library/Logs/Roblox。
- 双击结果以导航到 Roblox 日志目录。
- 在目录中,双击日志以打开它。
iOS
您可以使用 Mac 或 iOS 设备收集 iOS 日志。
要在 Mac 上访问 iOS 日志文件:
- 将 iOS 设备连接到 Mac。
- 打开 Finder。
- 导航到 实用工具 并打开 控制台 应用程序。
- 要在控制台应用程序中填充实时日志,请从侧边栏中选择 iOS 设备,单击 开始 按钮,并在 iOS 设备上重现问题。
- 要在控制台应用程序中填充归档日志,请在 终端 中运行 sudo log collect --device-name "[iOS Device Name]"。确保设备名称中没有撇号,否则在运行命令时可能会出现错误。
Android
要访问 Android 上的日志文件:
- 导航到 设置 ⟩ 系统 ⟩ 开发者选项。
- 切换 开发者选项 开启。
- 在计算机上下载并安装 Android Studio。
- 在 Android Studio 中,单击 Logcat。
- 将 Android 设备连接到计算机,以自动填充 Logcat 日志。