上面列表中的Lua調試功能的完整列表,我們經常使用,使用上述功能,并提供了更方便的調試庫。使用這些函數和創建自己的調試器是相當復雜,不是最好的選擇的。無論如何,我們將看到使用簡單的調試功能的例子。
function newCounter ()
local n = 0
local k = 0
return function ()
k = n
n = n + 1
return n
end
end
counter = newCounter ()
print(counter())
print(counter())
local i = 1
repeat
name, val = debug.getupvalue(counter, i)
if name then
print ("index", i, name, "=", val)
if(name == "n") then
debug.setupvalue (counter,2,10)
end
i = i + 1
end -- if
until not name
print(counter())
在這個例子中,每次計數器更新當它被調用。可以使用getupvalue函數獲取局部變量的當前狀態。然后將局部變量的設置新值。這里,n設定為2在操作被調用之前。使用setupvalue函數更新為10,當調用計數器功能,它會返回11,而不是3。
調試類型
圖形化調試提供有IDE提供了各種狀態,如變量值,堆棧跟蹤信息和其他相關信息的可視化調試。有一種視覺表示,一步執行了斷點的幫助下步控制,步入,跳過和其他按鈕在IDE中。