Studio 提供许多常见在集成开发环境 (IDE) 中找到的调试工具。这些工具帮助您解决错误并检查脚本行 by-by 在运奔跑时。调试信息显示在 Watch 、 Call Stack 、 Breakpoints 和 2>Output2> 窗口中,您可以检查。
常规工作流程
如果您在体验中发现问题,或想要验证它作为您的意图工作,您可以按照以下步骤调试该代码:
插入中断点 在您想要检查的代码上。
在脚本选项卡中,单击测试标签中的 播放 或 运行 按钮以开始游戏测试会话,也称为调试会话。
当脚本触发休断点时,游戏测试会暂停。 使用脚验证码。 检查 Watch 、 Call Stack 和 Output 窗口来帮助您诊疗和理解问题。
在 脚本 选项卡中,单击停止以结束调试会话。
重复以前的步骤直到您解决问题或找到其根本原因。 随着您学习整个工作流程,您可以配置中断点只在满足某些条件时打印消息到 输出 窗口,并且仅在客户端或服务器上运行。 有关更多信息,请参阅中断点配置。
插入中断点
中断点是检查点,可以暂停或“打破”你的脚本在特定行上的执行。你可以使用暂停来检查和调试你的体验, 观看变量,并查看调用堆。中断点是一种最有效的调试工具,因此它是一种最有效的调试工具。你可以在任意执行代验证码的行上插入中断点。
要在代验证码行中插入标准中断点,请单击边缘图标,然后单击其行号的右侧。您还可以单击边缘图标,然后单击“插入中断点”。中断点显示为红点。要禁用它,请单击红点。
迈过代码
如果您在脚本中插入中断点,脚本将在该行脚本运行之前暂停。一个黄色箭头称为“调试器”,它指示哪个行代码将在下一步执行。
当脚本暂停时,使用按钮在脚本选项卡中走过它们,然后单行执行以下代码。按钮还会在调用堆窗口的左上角出现。当您走过脚验证码时,请注意您的体验如何改变。
下表总结了三种方法来步骤地穿过代验证码。在您击中中断点后,请单击脚本选项卡中的继续执行。
按钮 | 行动 | 快捷方式 | 描述 |
---|---|---|---|
步入 | F11 | 步骤进入 按钮将调试器移动到当前行中的函数代码。如果当前行中没有函数,调试器将移动到下一行。 | |
跳过 | F10 | 步过按钮将调试器移到下一行代验证码,不会移动到函数。 | |
步出去 | Shift F11 | 步出按钮将调试器从当前函数中移动到下一个代码行后。如果当前行不在函数中,调试器将移动到下一个行。 |
检查代码
当发生错误时,您可以检查观看窗口、游戏测试用堆窗口、输出窗口和1>脚本编辑器1>来查看变量值和函数执行的信息。 有了这些信息,您可以找到您体验中的问题的根本原因。
观看窗口
观看者 窗口有两个选项卡: 变量 和 我的手表 。1>变量1>选项卡显示当前变量的信息,而4>我的手表4>选项卡显示您定义的变量或表达的值。 两个选项卡在行运行前显示信息。
变量选项卡有以下栏目:
- 名称 – 变量的声明名称。
- 范围 – 变量的范围:它可以“被看到”并且访问,例如 Local、Global 或 Upvalue。
- 值 – 变量的当前值。
- 数据类型 - 变量的数据类型。
我的手表选项卡有以下栏目:
- 表达 – 您想要监视的表达。
- 值 – 当前值。
- 数据类型 – 表达的数据类型。
在 变量 选项卡中,您可以通过单击过滤器标志来过滤变量的范围。您还可以根据需要排序行列。 窗口提供 both 扩展和收起的视图。
要检查 Watch 窗口中的代码:
如果 看 窗口未打开,请在 视图 选项卡中单击 看。
当您的游戏测试会话暂停在休断点时,请考虑您期望当前行将如何更改该脚本中的变量值。
当您通过代验证码步骤时,注意变量在 变量 选项卡中变化。如果您想要查看脚本中不在变量选项卡中的表达,请打开 我的手表 选项卡。单击 脚本 栏中的空行,然后键入表达。如果您想要查看脚本编辑器中的变量,请双击变量名称,然后单
比较您期望和您在观看窗口中看到的变量和表达的值。如果您期望变量更改的方式与实际变更的方式存在差异,那么与变量或与它们交互的函数可能会导致问题或错误。
调用堆叠窗口
调用堆 窗口显示调试器到达交断点时下一个执行的代码。调用堆表示您调用哪个线从调试器到达交付点,如果您在其他函数中调用该函数,调用堆的顺序和哪些线您调用其他函数。顶部函数堆的上限是最后一个被调用的函数,如果您在脚本中调用该函数,调用堆的顺
如果您在不同的脚本中有多个中断点,它们可能会在同一时间暂停播放测试会话。您可以通过单击脚本名称旁边的箭头跳转到中断点。如果您单击 继续 ,则您将跳过暂停的所有中断点。
要在调试会话中在调用堆中检查代码:
如果 调用堆 窗口未打开,请在 视图 选项卡中单击 调用堆 。
当您的体验在休息断点暂停时,请考虑您期望功能调用的顺序在那个脚本中。
调用堆显示函数调用的顺序。如果中断点位于函数中,则会显示该函数的哪个函数,如果有的话。调用堆还显示每个函数的名称和行号。单击行以跳转到该函数。
比较您在步骤 2 中想象的函数调用的顺序和步骤 3 的实际顺序。如果存在任何差异,则会在您期望代码如何处理的方式和实际处理方式之间存在差异,从而导致潜在的问题和错误。
输出窗口
输出窗口,从视图选项卡访问,显示从运行脚本、Roblox Engine、日志消息、来电于print()、调用1> print()1>和调用4> warn4>。
脚本编辑器
调试器与 脚本编辑器 集成在一起。当您在脚本中暂停时,您可以将鼠标悬停在变量名称上,以便查看其值。例如您可以查看函数调用中传递的表的值。
关闭点配置
您可以配置中断点只会在满足某些条件时打印消息到输出窗口,并且仅在客户端或服务器上运行。您还可以将这些配置混合在一起,以最佳适合您的调试需求。
编辑休息点
您可以随时编辑休息点的配置,包括在游戏测试会话中。如果您在游戏测试会话中编辑休息点,编辑将在您完成它后持续存在。您还可以编辑休息点,该休息点正在暂停您的游戏测试会话,但更改不会在下一次游戏测试会话中应用。
要编辑休断点的配置:
右击打断点,然后单击 编辑打破点 。
在 编辑休息点 窗口中,配置休息点。
条件、日志消息和选项
对于每个断点,您可以设置其 条件 、 日志消息 、 继续执行 和1>上下文1>。
条件是确定是否激活休息点的表达。休息点是可选的。如果n 为空,休息点总是激活。如果42 为 true,休息点只会在变量1> 42
输出窗口打印条件下的 条件消息 是输出条件是真的时打印到 输出窗口 的条件消息的表达。 格式 条件消息的格式与 1> print()1> 语句的参数相同。 例如,将条件消息设置为 4> "
继续执行选项确定是否在启动时暂停脚本,如果是这样,它的打断会暂停脚本。它的用处是如果您想要在不停止执行的情况下记录变量或式的值。此选项默认为禁用。
上下文 是指在客户端、服务器或编辑中是否启动休息点。如果上下文是客户端,休息点将在客户端脚本中触发。如果上下文是服务器,休息点将在服务器脚本中触发。如果上下文是编辑,休息点将在您调试插件时触发。如果您单击“自定义”,窗口会显示当前上下文。
条件性休息点和日志点
Studio 提供命名的变化点来使插入变化点更快。要插入命名的变化点,请右击边缘点的右边,然后单击您想要插入的变体。
条件断点 是一个带有 条件 和 继续执行 功能已禁用的条件断点。条件断点只会在脚本中停止运行,如果条件是真的,因此它们对调试函数在特定变量下的执行情况有用。条件断点使用变量之前的值
木头点 是一个断点,具有 木头消息 和 继续执行 功能。 木头点在脚本不间断地执行下,向输出窗口无需暂停您的脚本,因此它对调试变量值有用。 当您插入 1> 木头点1> 时,您的 cursor 将在线上的
Logpoints 通常比 print() 语句更有效用于调试变量,因为它们允许您将消息记录在输出窗口,而不必停止或重新启动正在运行的 Playtest 会话。 与 print() 语句比较,它们使您的代码清洁,而且调试时更容易移除。
禁用中断点
有很多方法可以禁用和重新启用中断点:
- 点击断点的标志。
- 编辑休息点,并切换其启用状态。
- 右击“打破”图标,然后单击“禁用打破”或“启用打破”。
删除休息点
要删除休断点,请单击其标志。您也可以右击其图标并单击 删除休息点 。
断路器窗口
打破点窗口显示您体验中的所有打破点。要打开打破点窗口,请单击 Studio 顶部的“视图”选项卡,然后单击 “打破点”。
打破点窗口有以下栏位:未标记、脚本、行、源线、条件、日志消息和继续执行。 打破非标记的、脚本和行列栏位总是显示,但您可以通过单击窗口右上角的三个点来切换其他栏位。
在未命名的栏中,(x3)标签表示同一行代验证码上的休息点数,并且图标表示休息点配置。休息点在同一行上共享相同的条件、记录消息和继续执行,但在上下文中不同。您可以在“休息点”窗口中编辑休息点的配置。例如,您可以通过编辑其“休息点”栏中的文本区域来编辑休息点的条件。
您可以通过在“启用”列中单击其中的休息点图标来启用或禁用休息点。您还可以通过单击以下按钮来启用、停用或删除一些或所有休息点。
按钮 | 行动 |
---|---|
禁用所有休息点。如果任何休息点已禁用,请启用它全部。 | |
删除所有断路点。 |
断点图标
休息点的图标取决于是否启用、有条件和有日志消信息。如果休息点有日志消信息,它就会无论有没有条件显示为休息点。
名称 | 图标 | 启用 | 条件 | 日志消息 |
---|---|---|---|---|
破坏点 | 是 | 没有 | 没有 | |
没有 | 没有 | 没有 | ||
条件反射 | 是 | 是 | 没有 | |
没有 | 是 | 没有 | ||
日志点 | 是 | 也许 | 是 | |
没有 | 也许 | 是 |
其他调试工具
除了调试器外,Studio 还提供其他调试工具,可让您在体验中修复问题和错误。
命令栏
命令栏允许您在体验运行时运行 Luau 命令。它可以从 Studio 的 视图 选项卡和在开发者控制器中使用。
开发者控制器
开发者控制器 提供一系列包括客户端和服务器输出、内存使用、网络性能和更多的细节。要打开开发者控制器在测试或玩游体验时,请键入/console 在聊天中或按下F9。有关更多信息,请参阅1>开发者控制器1>。
日志文件
当脚本在 Studio 或 Player 应用程App打印时,脚本会在本地文件系统中的日志文件中记录这条消息。这些文件的位置由操作系统决定。
窗户
要访问 Windows 上的日志文件:
- 打开 文件浏览器 .
- 导航到 %LOCALAPPDATA%\Roblox\logs 目录。
- 双击一个日志以打开它。Logs with the same XXXXX value are from the same Studio session.
Mac
要访问 Mac 上的日志文件:
- 打开 查找器 。
- 在菜单栏中,选择 去 > ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ �
- 在对话框中,输入 ~/Library/Logs/Roblox。
- 双击结果导航到 Roblox 日志目录。
- 在目录中,双击一个日志以打开它。
iOS
您可以使用 Mac 收集 iOS 日志,或使用 iOS 设备收集。
要访问 Mac 上的 iOS 日志文件:
- 将 iOS 设备连接到 Mac。
- 打开 查找器 。
- 导航到 工具 并打开 控制器 应用程序。
- 要在控制应用程序中实时记录,请从侧栏中选择 iOS 设备,单击 开始 按钮,然后在 iOS 设备上重现问题。
- 要在控制应用程序中弹充已归档的日志,请在 sudo log collect --device-name "[iOS Device Name]" 中运行 sudo log collect --DEVICE-NAME 在 终端 。确保设备名称中没有空格,否则在运行命令时可能会出错。
安드ROID
要访问 Android 上的日志文件:
- 导航到 设置 > 系统 > 开发者选项 。
- 切换 开发者选项 。
- 在电脑上下载并安装 Android Studio。
- 在 Android Studio 中,单击 Logcat 。
- 将 Android 设备连接到电脑,以便自动将 Logcat 弹满木头。