登录
Tarantool Lua Debugger
分类:工具软件 访问:50 下载量:0

软件介绍

更新时间:2025-06-16

Tarantool Lua Debugger for Visual Studio Code:简化您的Lua开发调试

Tarantool Lua Debugger是一款专为Visual Studio Code设计的Lua调试工具,无需额外依赖,帮助开发者高效调试Lua代码。最新版本0.3.0带来了一项重要更新,对于使用源码映射调试(如TypescriptToLua转换的代码)的项目,现在必须在启动配置中指定scriptFiles选项,以便在原始源文件中使用断点。这项改进大幅提升了调试性能,使断点在启动时即可解析。

主要功能:

  • 通过Tarantool调试Lua代码
  • 提供基本调试功能,包括步进、检查、断点等
  • 支持条件断点
  • 将协程作为独立线程进行调试
  • 基本支持源码映射,如TypescriptToLua生成的映射

使用方法:

要使用特定的Tarantool可执行文件调试Lua程序,您可以在用户或工作区设置中设置lua-tarantool.tarantool。或者,您可以在launch.json中设置解释器和要运行的文件:

{
  "configurations": [
    {
      "type": "lua-tarantool",
      "request": "launch",
      "name": "Debug",
      "program": {
        "tarantool": "",
        "file": "${file}"
      }
    }
  ]
}

要求与限制:

  • Lua环境必须支持通过stdio或管道进行通信。某些环境可能需要命令行选项来支持stdio通信(例如,Solar2D需要/no-console标志)。如果使用io.read或其他需要用户输入的调用,会在stdio模式下造成问题。可以通过将program.communication设置为pipe来解决此问题。
  • Lua环境必须包含调试库构建,且其他代码不应尝试设置调试钩子。
  • 在程序运行时无法手动暂停调试。
  • 在Lua 5.1和LuaJIT中,当在协程内部停止时,无法访问主线程。

请注意,lldebugger的路径将自动添加到LUA_PATH环境变量中,以便Lua可以找到它。

使用技巧:

  • 为了方便,全局引用调试器始终存储为lldebugger。
  • 可以通过检查环境变量LOCAL_LUA_DEBUGGER_VSCODE来检测调试器扩展是否已附加。这在自定义环境中条件性启动调试器时非常有用。
if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
  require("lldebugger").start()
end
  • 某些自定义环境不会在未捕获的运行时错误上中断。要捕获运行时错误,可以使用lldebugger.call()包装代码:
lldebugger.call(function()
  --code causing runtime error
end)
  • 某些环境不会从标准文件系统加载所需的文件。在这些情况下,您可以使用LOCAL_LUA_DEBUGGER_FILEPATH中存储的文件路径手动加载调试器:
package.loaded["lldebugger"] = assert(loadfile(os.getenv("LOCAL_LUA_DEBUGGER_FILEPATH")))()
require("lldebugger").start()

额外配置选项:

  • scriptRoots:用于查找Lua脚本的替代路径列表。这对于使用自定义解析器查找脚本的环境(如LÖVE)非常有用。
  • scriptFiles:调试时在工作区中查找Lua脚本的glob模式列表。这对于在源码映射文件中放置断点是必需的(例如,使用TypescriptToLua时的'ts'脚本),因为必须提前查找源文件,以便解析断点。
  • ignorePatterns:指定在步进代码时要跳过的文件的Lua模式列表。
  • stepUnmappedLines:在步进源码映射代码时,如果当前行没有映射,则步入Lua。
  • breakInCoroutines:在协程内部发生错误时中断到调试器。
  • stopOnEntry:在设置调试钩子后的第一行自动中断。
  • cwd:指定启动可执行文件的工作目录。默认是项目目录。
  • args:启动时传递给Lua脚本或自定义环境的参数列表。
  • env:指定启动可执行文件时设置的环境变量。
  • program.communication:指定扩展程序如何与调试器通信。可选值包括stdio(默认)和pipe。
  • verbose:启用调试器的详细输出。仅在尝试识别调试器本身的问题时有用。

本站所有资源都是由网友投稿发布,或转载各大下载站, 请自行检测软件的完整性!

本站所有资源仅供学习与参考,请勿用于商业用途,否则 产生的一切后果将由您自己承担!

如有侵权请联系我们删除下架,联系方式:study_golang@163.com

最新教程

查看更多
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
  • MySQL数据管理之备份恢复案例解析视频教程
    MySQL数据管理之备份恢复案例解析视频教程
    《MySQL数据管理之备份恢复案例解析视频教程》MySQL是一个开放源码的小型关联式数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
  • MySQL索引优化解决方案
    MySQL索引优化解决方案
    本套课程是根据MySQL索引的设计理念与数据结构、索引使用场景、索引分类、索引运用场景、索引性能分析、查询优化、MySQL索引的慢查询等组成,主要讲述了MySQL索引优化的解决方案,非常适合有MySQL使用基础或者有一定工作经验的同学。课程讲解了解决大数量查询慢的问题、如何编写一个高效的SQL、查询语句应该如何优化、索引的实现原理是什么、索引又应该如何优化...等诸多SQL索引优化的难点和面试点。
  • 极客学院Docker视频教程
    极客学院Docker视频教程
    Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是各大厂商的支持,都使Docker成为了时下最受关注的技术,甚至微软都声称在下一代WindowsServer中集成对Docker的支持。所以我们收集了《极客学院Docke
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
  • JavaScript极速入门
    JavaScript极速入门
    本套课程将帮助大家迅速掌握JavaScript这门高端的、动态的、弱类型编程语言。知识点简单明了,让你学习0压力,适合新手观看学习......