第一版是针对 Lua 5.0 编写的。虽然在很大程度上仍然适用于后续版本,但有一些不同之处。
第四版针对 Lua 5.3,可在 Amazon 和其他书店购买。
购买本书,您还可以帮助支持 Lua 项目


23 – 调试库

调试库不会为您提供 Lua 的调试器,但它提供了编写 Lua 调试器所需的所有基本元素。出于性能原因,访问这些基本元素的官方接口是通过 C API。Lua 中的调试库是一种直接在 Lua 代码中访问这些函数的方法。此库在其 debug 表中声明其所有函数。

与其他库不同,您应谨慎使用调试库。首先,其某些功能的性能并不算好。其次,它打破了该语言的一些神圣真理,例如您无法从创建它的函数外部访问局部变量。通常,您可能不想在产品的最终版本中打开此库,否则您可能希望将其删除

    debug = nil

调试库包含两种函数:自省函数和挂钩。自省函数允许我们检查正在运行的程序的多个方面,例如其活动函数的堆栈、当前执行行以及局部变量的值和名称。挂钩允许您跟踪程序的执行。

调试库中的一个重要概念是堆栈级别。堆栈级别是一个数字,它引用在该时刻处于活动状态的特定函数,即它已被调用但尚未返回。调用调试库的函数为 1 级,调用它的函数为 2 级,依此类推。