为在 Roblox 中调试代码提供几个基本功能。与 Lua 内置的 debug 图书馆不同,此版本已被重度沙箱化。
概要
职能
返回一个描述当前函数调用调用堆栈的 undefined 格式的字符串。
返回一个描述当前函数调用调用堆栈的 undefined 格式的字符串。
穿过当前线程堆并返回包含目标级别详情的调用堆的字符串。
穿过当前线程堆并返回包含目标函数调用堆详细信息的字符串。
穿过目标线程堆并返回包含目标级别详情的调用堆的字符串。
开始为标签进行分析。
停止对最新标签的分析,该标签 debug.profilebegin() 打开了。
返回当前线程的活动内存类别的名称。
为当前线程的内存类别分配自定义标签。
重置由 debug.setmemorycategory() 分配的标签到自动分配的值 (通常是脚本名称)。
显示个人函数和脚本的原生代码大小表。
职能
traceback
返回当前函数调用堆的追踪记录为字符串;换言之,这是到目前为止已调用的函数的描述。在调试期间,它会像错误堆溯追踪一样行动,但不会停止脚本的执行。
该 level 参数指定要考虑的调用堆级别,其中 1 是调用 debug.traceback() 本身的调用,2 是调用函数调用 debug.traceback() 的调用,等等。请参阅下面的代码示例,了解顺序函数调用的示例。
请注意,这个函数往往会返回不准确的结果(与原始源验证码相比),返回的追踪格式可能随时更改。你应该 不 解析返回值以获取特定信息,例如脚本名称或行号。
以下示例包括顺序函数调用;fnB()被调用,然后调用fnA(),然后调用debug.traceback()。
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- 调用函数 fnB() 以开始追踪
fnB()
返回
跟踪当前函数调用堆。
traceback
返回当前函数调用堆的追踪记录为字符串;换言之,这是到目前为止已调用的函数的描述。在调试期间,它会像错误堆溯追踪一样行动,但不会停止脚本的执行。
该 level 参数指定要考虑的调用堆级别,其中 1 是调用 debug.traceback() 本身的调用,2 是调用函数调用 debug.traceback() 的调用,等等。请参阅下面的代码示例,了解顺序函数调用的示例。
请注意,这个函数往往会返回不准确的结果(与原始源验证码相比),返回的追踪格式可能随时更改。你应该 不 解析返回值以获取特定信息,例如脚本名称或行号。
以下示例包括顺序函数调用;fnB()被调用,然后调用fnA(),然后调用debug.traceback()。
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- 调用函数 fnB() 以开始追踪
fnB()
参数
返回
跟踪当前函数调用堆。
info
允许程序化检查调调用堆栈。该函数与 debug.traceback() 不同,保证它返回的数据格式。这对一般的记录和筛选目的以及发送数据到期望结构化输入的系统,例如崩溃聚合,也有用。
local function fnA()
-- 输出来源标识符(“s”)和行(“l”)在等级 1 和 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
请注意,此函数与 debug.getinfo 相似,是标准 Lua 库中不可用的部分,用于相同的目的。
参数
决定返回的信息应描述在调用堆的哪个级别。一个值 1 表示调用 debug.info() 的函数,一个值 2 表示调用那个函数的函数,等等。
返回
info
允许程序化检查调调用堆栈。该函数与 debug.traceback() 不同,保证它返回的数据格式。这对一般的记录和筛选目的以及发送数据到期望结构化输入的系统,例如崩溃聚合,也有用。
local function fnA()
end
local function fnB()
end
-- fnA() 和 fnB() 的输出线(“l”)、名称(“n”)和标识符(“f”)
print(debug.info(fnA, "lnf")) --> 1 fnA 函数:0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2
请注意,此函数与 debug.getinfo 相似,是标准 Lua 库中不可用的部分,用于相同的目的。
参数
返回
info
允许程序化检查调调用堆栈。该函数与 debug.traceback() 不同,保证它返回的数据格式。这对一般的记录和筛选目的以及发送数据到期望结构化输入的系统,例如崩溃聚合,也有用。
local function fnA()
-- 输出来源标识符(“s”)和行(“l”)在等级 1 和 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
请注意,此函数与 debug.getinfo 相似,是标准 Lua 库中不可用的部分,用于相同的目的。
参数
由 coroutine.create() 返回的线程。
决定返回的信息应描述在调用堆的哪个级别。一个值 1 表示调用 debug.info() 的函数,一个值 2 表示调用那个函数的函数,等等。
返回
profileend
停止为最新的 MicroProfiler 标签进行分析,该标签 打开了。