使用 Lua 调试器

Time:10 分钟

Lua 调试器为 Lua 环境下的调试工具,旨在为 Roblox 开发者提供任何 IDE(集成开发环境)中应有的实用工具。默认情况下,调试器处于启用状态。开发者可以通过 Roblox Studio 的 **Settings(设置)**菜单对其进行启用或禁用。

https://developer.roblox.com/assets/bltf5d60f4defe65691/Enable-Lua-Debugger.png

调试器的作用

调试器能够帮助开发者检查其代码是否正常运行,是十分有用的工具。部分调试器功能可以使用 print() 语句(执行特定代码时验证)进行复制,但开发者可以在不修改代码的前提下通过调试器将 Breakpoint(断点)置于其脚本中。拥有断点的应用程序将在断点处停止,以便开发者检查程序状态或断点处特定变量的值。

断点

断点是脚本内的“保存点”。为代码行设置断点后,运行中的 Roblox 游戏在尝试执行该代码行时将会暂停。

要设置脚本内的断点,请执行以下操作:

  1. 在 Roblox Studio 内打开脚本。

  2. 单击脚本内需要暂停执行的代码行左侧,创建指示断点的红点。 https://developer.roblox.com/assets/bltc8e67419d22afb9f/Create-Breakpoint.png

需要移除断点时,单击该行左侧红点即可。

检查断点

单击 **View(视图)**选项卡中的 **Breakpoints(断点)**后,开发者可以浏览其所设置过的所有断点。此操作将会打开 **Breakpoints(断点)**窗口,该窗口的功能包括对特定断点或所有断点进行启用与禁用、移除断点,以及查看每个断点所在的脚本。

逐步执行代码

脚本在断点处暂停后,开发者可以选择逐行继续执行脚本,以便密切监视变量更改以及函数调用。逐步执行代码的方式共有三种,均位于 **Script Menu(脚本菜单)**选项卡中:

按钮 操作 描述

https://developer.roblox.com/assets/blt1d4efb493e0111b8/Step-In.png

Step Into(单步跳入) 单步跳入按钮可将调试器移动到当前行上的函数中。如果当前行上没有函数,调试器将移动到下一行。

https://developer.roblox.com/assets/blt16bc1bc580d6c5f2/Step-Over.png

Step Over(单步跳过) 单步跳过按钮可将调试器移动到下一行代码,而不是移动到函数中。

https://developer.roblox.com/assets/bltbbfdf1cb53d5475f/Step-Out.png

Step Out(单步跳出) 单步跳出按钮可将调试器移出当前函数并移动到起始函数调用的下一行代码。如果当前行不在函数内,此按钮将移动到下一行。

Uh oh! Your browser doesn’t appear to support embedded videos! Here is a direct link to the video instead.

监视变量

除了设置断点之外,开发者还可以指示调试器对变量进行“监视”变量,从而在遇到断点时检查变量的值。要将变量添加到监视列表,只需使其高亮显示后单击 **Script Menu(脚本菜单)**选项卡中的 **Add Watch(添加监视)**按钮即可。此操作将会打开 **Watch(监视)**窗口,开发者在逐步执行断点时可以从该窗口中监视变量值。

https://developer.roblox.com/assets/bltc234fe9996f15cc9/Watch-Variable.png

同时,开发者还可以通过单击 **Add Watch(添加监视)**按钮并输入变量名称来对其值进行监视。

调用堆栈

**View(视图)**选项卡中的 **Call Stack(调用堆栈)**窗口可以告知开发者游戏当前在代码中的确切位置(当暂停或位于在断点处时)。如果当前代码行存在于从其他函数调用的某个函数中,堆栈将显示函数的调用顺序以及进行调用的行号。

https://developer.roblox.com/assets/blt16377ea05a08669d/Call-Stack.png

***Roblox官方链接:使用 Lua 调试器