提供幾個基本功能來在 Roblox 中調試程式碼。與 Lua 的 debug 資料庫不同,此版本已被重新沙盒。
概要
函式
返回一個沒有格式的字串,描述目前的函呼叫堆疊。
返回一個沒有格式的字串,描述目前的函呼叫堆疊。
穿過目前子線程的整個堆疊,並且返回一個含有目標等級細節的字串。
穿過目前子線程的整個堆疊,並且返回包含目標功能細節的字串。
穿過目標子程式的整個堆疊,並且返回一個含有目標等級細節的字串。
開始標籤的詳細分析。
停止為最近開啟的標籤 debug.profilebegin() 進行 profiling。
返回目前線程的啟用記憶類別的名稱。
將自訂標籤指定到目前線程的記憶類別。
重設標籤由 debug.setmemorycategory() 設定的值 (通常為指令名稱)。
顯示個別函數和指令碼的原始代碼尺寸。
函式
traceback
將目前的函數堆作為字串返回,這是說,與此時點相關的函數的描述。在Debug中,這會像錯誤堆追蹤行為,但不會停止執行此時點的脚指令碼。
leve等級 參數指定要考慮的呼叫堆的程度,1 是呼叫 debug.traceback() 本身的呼叫,1>21> 是呼叫函數調用 4>Library. debug. traceback4> 的呼叫,等等。參考下面的代碼示例獲得一個示例程序呼叫。
注意,此功能通常會返回不準確的結果 (比原始源代碼準確) ,並且將返回的 traceback 格式可能會隨時變更。您應該不要 解析 返回值以取得特定信息,例如腳本名稱或行號。
下面的例子包括順序功能呼叫; fnB() 已被呼叫,並且會呼叫 fnA(),然後會呼叫 debug.traceback()。
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- 呼叫函數fnB()以開始追蹤
fnB()
返回
目前功呼叫堆疊的追蹤。
traceback
將目前的函數堆作為字串返回,這是說,與此時點相關的函數的描述。在Debug中,這會像錯誤堆追蹤行為,但不會停止執行此時點的脚指令碼。
leve等級 參數指定要考慮的呼叫堆的程度,1 是呼叫 debug.traceback() 本身的呼叫,1>21> 是呼叫函數調用 4>Library. debug. traceback4> 的呼叫,等等。參考下面的代碼示例獲得一個示例程序呼叫。
注意,此功能通常會返回不準確的結果 (比原始源代碼準確) ,並且將返回的 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
-- 輸出線 ("l")、名稱 ("n") 和識別器 ("f") 對於fnA() 和fnB()
print(debug.info(fnA, "lnf")) --> 1 個 funA 函數: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
停止 profiling 最近開啟的 MicroProfiler 標籤。 停止 profiling 最近開啟的 debug.profilebegin() 標籤。