第一版是針對 Lua 5.0 編寫的。雖然在很大程度上仍然適用於後續版本,但仍有一些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買書籍時,您也協助 支援 Lua 專案


23 – 偵錯函式庫

偵錯函式庫並未提供 Lua 偵錯器,但它提供了撰寫 Lua 偵錯器所需的所有基本元素。基於效能考量,這些基本元素的官方介面是透過 C API。Lua 中的偵錯函式庫是一種直接在 Lua 程式碼中存取這些函式的途徑。此函式庫在其 debug 表格內宣告所有函式。

與其他函式庫不同,您應謹慎使用偵錯函式庫。首先,其部分功能並非以效能著稱。其次,它打破了語言的一些神聖真理,例如您無法從建立它的函式外部存取局部變數。您可能經常不想在產品的最終版本中開啟此函式庫,否則您可能想刪除它

    debug = nil

偵錯函式庫包含兩種函式:內省函式和掛鉤。內省函式允許我們檢查執行中程式的幾個面向,例如其活動函式堆疊、目前的執行行,以及局部變數的值和名稱。掛鉤允許您追蹤程式的執行。

偵錯函式庫中的一個重要概念是堆疊層級。堆疊層級是一個數字,用於指稱在該時刻處於活動狀態的特定函式,亦即它已被呼叫且尚未傳回。呼叫偵錯函式庫的函式具有層級 1,呼叫它的函式具有層級 2,依此類推。