debug

顯示已棄用項目

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

提供幾個基本功能來在 Roblox 中調試程式碼。與 Lua 的 debug 資料庫不同,此版本已被重新沙盒。

概要

函式

函式

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

參數

message: string

返回的字串的第一個字符。

level: number

回傳回來的呼叫堆的數量。

預設值:1

返回

目前功呼叫堆疊的追蹤。

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

參數

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 (string )—識別器功能的來源,與指定的 script 的完整名稱相同。
  • l ( number ) — 代表 level 的函數呼叫線數。
  • n (string — 函數名;可能為 nil 對於匿名函數和 C 函數,沒有指定的調試名稱。
  • a (數字Boolean) — 函數的階級,指參數數量和是否變體。
  • f (函數 ) — 被檢查的函數。

返回

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 圖書館的一個不可用的部分,用於相同的目的。

參數

function: function

回傳的資訊應該說明的回潮。

options: string

一個描述返回資訊應該代表的值的字串。它必須只包含 0 或 1 個代表角色 slnaf 的實例:

  • s (string )—識別器功能的來源,與指定的 script 的完整名稱相同。
  • l ( number ) — 線,在 function 定義。
  • n (string — 函數名;可能為 nil 對於匿名函數和 C 函數,沒有指定的調試名稱。
  • a (數字Boolean) — 函數的階級,指參數數量和是否變體。
  • 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 (string )—識別器功能的來源,與指定的 script 的完整名稱相同。
  • l ( number ) — 代表 level 的函數呼叫線數。
  • n (string — 函數名;可能為 nil 對於匿名函數和 C 函數,沒有指定的調試名稱。
  • a (數字Boolean) — 函數的階級,指參數數量和是否變體。
  • f (函數 ) — 被檢查的函數。

返回

profilebegin

void

開始 profiling 對 微型 profiler 標籤。

參數

label: string

這個 微型分析器 標籤上顯示的文字。

返回

void

profileend

void

停止 profiling 最近開啟的 MicroProfiler 標籤。 停止 profiling 最近開啟的 debug.profilebegin() 標籤。

返回

void

getmemorycategory

返回目前線程的啟用記憶類別的名稱。

返回

目前線程的啟用記憶體類別。

setmemorycategory

開發者控制器 中,為目前的執行緒記錄類別中指定標籤名稱。對於分析多個線程在同一個腳本中使用內存的資料,這會以標籤/名稱的團體方式呈現。返回當前執行緒的上一個記錄類別的名稱。

參數

tag: string

返回

目前線程的先前記憶類別。

resetmemorycategory

void

重設標籤由 debug.setmemorycategory() 設定的值 (通常為指令名稱)。

返回

void

dumpcodesize

void

顯示個別函數和指令碼大小的原始碼桌子。此功能只在 Studio 的指令欄中提供。更多資訊可以在 原始碼生成頁面 中查看。

返回

void