有沒有辦法使用遠端偵錯器單步調試 LuaLaTeX 巨集?

有沒有辦法使用遠端偵錯器單步調試 LuaLaTeX 巨集?

編寫 LaTeX 巨集一直是一件困難的事情,似乎編寫一個主要的套件只能由一個人來完成真正的程式設計師

幸運的是,LuaTeX 正在路上,編寫 Lua 巨集可以說比用 TeX 程式設計更人性化。儘管如此,如果有辦法將 LuaTeX 與遠端偵錯器結合起來,它可能會變得更加友好。

因此我問:有沒有辦法遠端調試 LuaLaTeX 巨集?

這個問題本質上是對帖子的改寫使用 LDT 在 LuaLatex 中調試 Lua。該帖子已關閉,因為它實際上並不包含問題。帖子中提出了一個幾乎完整的解決方案,但是存在一些問題,我想知道這些問題是否可以解決。

答案1

現在,您可以在 LuaTeX 處理文件的過程中對 Lua 程式碼進行 GUI 偵錯。使用斷點、監視變數、單步執行程式碼、呼叫堆疊,甚至在滑鼠懸停時顯示帶有變數內容的工具提示。

我使用 TeX 的環境是VS程式碼+乳膠工作坊+萊特克斯。這非常方便:我可以編寫和調試 C++ 程序,並在同一個視窗中寫一篇描述它的論文。 LaTeX Workshop 有如此多的功能,以至於像 TeXstudio 這樣的東西感覺沒有必要。

您也可以在 VS Code 的同一環境中編輯 TeX 文件並偵錯其 Lua。要在文件中支援和調試 Lua,您需要兩個擴充功能:盧阿本地Lua調試器

若要進行調試,請在序言中插入以下內容:

\begin{luacode}
    require("lldebugger").start()
\end{luacode}

然後建立以下啟動配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Custom Lua Environment",
            "type": "lua-local",
            "request": "launch",
            "stopOnEntry": false,
            "program": {
                "command": "lualatex"
            },
            "args": ["mwe.tex"]
        }
    ]
}

上面mwe.tex是您的文件的名稱。就是這樣。您已準備好調試,只需按 F5 即可。到目前為止,唯一的缺點是它不能在文件內放置斷點.tex;它必須是一個Lua文件。

這是調試會話的螢幕截圖:

在此輸入影像描述

答案2

一種簡單、輕量級的替代方案是命令列介面偵錯器調試器.lua作者:史考特‧萊姆貝克。這是不是遠端調試解決方案,但設定起來非常容易。缺點是沒有 GUI,所以一切都是透過終端機完成的。但這比發出列印命令要好得多,這可能是迄今為止大多數 LuaLaTeX 包編寫者使用的方法。

開始:

  1. 下載調試器.lua並將其放入您的專案資料夾中。
  2. 將命令放在local dbg = require("debugger")要調試的 .lua 檔案的開頭。
  3. 將命令放置dbg()在程式碼中您希望程式碼執行中斷的位置。
  4. 使用終端命令檢查變數、執行自訂程式碼等等。發出命令h以取得可用命令的簡單摘要。

相關內容