debug

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

提供在 Roblox 中審查代碼的幾個基本功能。與 Lua 本地找到的 debug 圖形庫不同,此版本已被嚴格沙盒化。

概要

函式

函式

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()

參數

message: string

返回的字串的第一行。

level: number

呼叫堆返傳回的呼叫數量「上升」。

預設值:1

返回

追蹤目前功能呼叫堆疊。

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()

參數

thread: coroutine

coroutine.create() 返回的線程。

message: string

返回的字串的第一行。

level: number

呼叫堆返傳回的呼叫數量「上升」。

預設值:1

返回

追蹤目前功能呼叫堆疊。

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 圖形庫的不可用部分。

參數

level: number

決定在呼叫堆的哪一個等級上,返回的資訊應該描述。值 1 代表呼叫 debug.info() 的函數,值 2 代表呼叫那個函數的函數,等等。

options: string

一個描述返回資訊應該代表什麼的字串。它只能包含 0 或 1 個字符 slnaf 的實例,每個代表一塊信息:

  • s字串 )—功能來源標識符,等於函數定義在腳本中的全名。
  • l數字 )—由 level 代表的函數呼叫的行號。
  • n字串 )—功能名稱;可能是nil 對於未命名的函數和C函數,沒有指定的調試名稱。
  • a數量是否)—函數的優先級,指示參數數量和函數是否可變。
  • f功能)—被檢查的功能。

返回

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 圖形庫的不可用部分。

參數

function: function

資訊返回的呼叫堆功能,應該描述。

options: string

一個描述返回資訊應該代表什麼的字串。它只能包含 0 或 1 個字符 slnaf 的實例,每個代表一塊信息:

  • s字串 )—功能來源標識符,等於函數定義在腳本中的全名。
  • l數字 )— 在 function 上定義的線。
  • n字串 )—功能名稱;可能是nil 對於未命名的函數和C函數,沒有指定的調試名稱。
  • a數量是否)—函數的優先級,指示參數數量和函數是否可變。
  • f功能)—被檢查的功能。

返回

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 圖形庫的不可用部分。

參數

thread: coroutine

coroutine.create() 返回的線程。

level: number

決定在呼叫堆的哪一個等級上,返回的資訊應該描述。值 1 代表呼叫 debug.info() 的函數,值 2 代表呼叫那個函數的函數,等等。

options: string

一個描述返回資訊應該代表什麼的字串。它只能包含 0 或 1 個字符 slnaf 的實例,每個代表一塊信息:

  • s字串 )—功能來源標識符,等於函數定義在腳本中的全名。
  • l數字 )—由 level 代表的函數呼叫的行號。
  • n字串 )—功能名稱;可能是nil 對於未命名的函數和C函數,沒有指定的調試名稱。
  • a數量是否)—函數的優先級,指示參數數量和函數是否可變。
  • f功能)—被檢查的功能。

返回

profilebegin

()

開始為 MicroProfiler 標籤進行個人化。

參數

label: string

這個 微型監視器標籤所顯示的文字。

返回

()

profileend

()

停止對最新的 MicroProfiler 標籤進行個人化,該標籤已被 debug.profilebegin() 打開。

返回

()

getmemorycategory

返回目前線執行緒的活動記憶類別名稱。

返回

目前線程的活動記憶類別。

setmemorycategory

開發者控制台 中為當前線程的記憶類別分配自訂標籤名稱。對於分析多個線程在同一個腳本中的記憶使用量,以及將它們組合在同一標籤/名稱下,具有用處。返回目前線程的前一個記憶類別的名稱。

參數

tag: string

返回

目前線程的前一個記憶類別。

resetmemorycategory

()

重設由 debug.setmemorycategory() 指派的標籤到自動指派的值 (通常是腳本名稱)。

返回

()

dumpcodesize

()

顯示個別功能和腳本的原生代碼大小表。此功能只能在 Studio 的指令欄中使用。更多詳情可以在原生代碼生成頁面找到。

返回

()