提供在 Roblox 中審查代碼的幾個基本功能。與 Lua 本地找到的 debug 圖形庫不同,此版本已被嚴格沙盒化。
概要
函式
返回一串未定義格式,用於描述當前功能呼叫堆疊。
返回一串未定義格式,用於描述當前功能呼叫堆疊。
橫跨整個現有線程堆並返回包含目標等級詳情的呼叫堆的字串。
橫跨整個現有線程堆並返回包含目標函數呼叫堆細節的字串。
橫跨目標線程堆的整個堆,並返回包含目標等級詳情的呼叫堆的字串。
開始為標籤進行個人化。
停止對最新標籤的個人化,該 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 代表呼叫那個函數的函數,等等。