我正在尋找遠程調試Lua的最佳方式(如從網頁瀏覽器)。如何遠程調試Lua?
我看到了RemDebug,但最後一個項目更新是在2006年完成的。它適用於Lua 5.0和5.1,但Lua 5.2非常接近,我沒有看到RemDebug很快就會獲得更新。
我可以在我的調試主機上安裝一個小型嵌入式Web服務器,並使用類似RemDebug的東西與它進行通信,並通過HTTP執行遠程調試。
建議表示讚賞。
我正在尋找遠程調試Lua的最佳方式(如從網頁瀏覽器)。如何遠程調試Lua?
我看到了RemDebug,但最後一個項目更新是在2006年完成的。它適用於Lua 5.0和5.1,但Lua 5.2非常接近,我沒有看到RemDebug很快就會獲得更新。
我可以在我的調試主機上安裝一個小型嵌入式Web服務器,並使用類似RemDebug的東西與它進行通信,並通過HTTP執行遠程調試。
建議表示讚賞。
我不確定這是否正確。希望它能幫助,但:
來源:http://www.keplerproject.org/remdebug/example.html
這是下面的腳本(test.lua)的調試會話的例子:
1 require"remdebug.engine"
2
3 remdebug.engine.start()
4
5 local tab = {
6 foo = 1,
7 bar = 2
8 }
9
10 print("Start")
11
12 function bar()
13 print("In bar 1")
14 print("In bar 2")
15 end
16
17 for i = 1, 10 do
18 print("Loop")
19 bar()
20 tab.foo = tab.foo * 2
21 end
22
23 print("End")
首先運行RemDebug控制器:
%lua50 controller.lua Lua遠程調試器 運行你想調試的程序 在這一刻你可以運行你的目標程序(在另一個窗口中):
%lua50 test.lua 現在回去,你跑controller.lua窗口(這裏假設你是C內運行test.lua:在Windows系統上\研發\開普勒):
在暫停文件C:/development/kepler/test.lua 類型 '幫助' 的命令
BASEDIR C:/開發/開普勒/ 新基地目錄爲C:/開發/開普勒/ BASEDIR C:/開發/開普勒/ 步驟 暫停在文件C :/development/kepler/test.lua線6 超過 暫停在文件C:/development/kepler/test.lua線7 超過 暫停在文件C:/development/kepler/test.lua線10 超過 暫停在文件C:/development/kepler/test.lua第15行 setb test.lua 19 運行 您可以隨時切換到應用程序窗口以查看其輸出。回到調試器會話:
暫停在文件C:/ development/kepler/test。LUA線19
運行 在文件C暫停:/development/kepler/test.lua線19 EVAL tab.foo EVAL tab.bar EXEC old_tab =標籤 零 EXEC標籤= 2 零 EVAL標籤 EXEC標籤= old_tab 零 EVAL tab.foo 運行 在文件C暫停:/development/kepler/test.lua線19 delb test.lua 19 運輸及工務局局長tab.foo == 32 插入的0的eval tab.foo觀看EXP沒有。 1個 運行 在文件C暫停:/development/kepler/test.lua線17 (監視表達式1:[tab.foo = 32]) EVAL tab.foo DELW 1個 運行 程序完成
在原來的問題中,我指出我看到了RemDebug,但Lua 5.2非常接近,並且我沒有看到RemDebug很快就能獲得更新。我真的不認爲這是對我的問題的合適答案。 – Goles 2011-04-10 17:52:55
不知道是不是網頁瀏覽器的調試(的想法似乎怪我,也許你可以詳細解釋您需要一個網絡瀏覽器調試器?)
對於獨立得不但是,我寫了一個遠程調試器與GUI:http://cushy-code.com/grld
它與調試的程序與套接字API通信,所以任何網絡連接都可以,不需要HTTP。
希望這會有所幫助。
這聽起來很有趣,但我需要一個開源解決方案來理解如何去做。 (問題是「如何遠程調試lua」)謝謝。 – Goles 2011-08-02 07:45:18
我開發了一個基於RemDebug的新調試器(MobDebug),它具有新命令,新功能,錯誤修正以及與IDE的集成。
MobDebug是基於客戶機(調試者)和服務器(控制器)之間的TCP相互作用。 RemDebug和大多數其他遠程調試器也是如此。您也許能夠對別的東西(如網頁套接字或HTTP)上運行,但你仍然需要能夠運行協同程序和調試鉤來控制被調試的應用程序。
調試過程的結構很簡單:
可能會模仿現有的套接字接口(因爲它只使用連接/發送/接收和選擇/超時來中止應用程序)並重用大部分庫。我仍然不確定爲什麼你想在瀏覽器中運行它,因爲你可以在任何支持TCP的應用程序上運行應用程序(我有一個工作原型正在調試從我的桌面移動設備上運行的應用程序)。
我真的很喜歡我在這裏看到的...我會試試! – Goles 2012-06-14 18:00:24
您的調試器看起來不錯!是否有初學者教程(我已經看過示例文件夾)?有些事情不是自我解釋,「幫助」也不是那麼徹底。 – Atcold 2015-01-29 21:57:01
@Atcold,您可能需要查看[本概述](http://studio.zerobrane.com/doc-lua-debugging)和其他[調試相關鏈接](http://studio.zerobrane.com/documentation的.html#調試)。它們是從IDE用戶的角度出發的,但由於所有功能都基於MobDebug提供的功能,因此它可以讓您更深入地瞭解它的工作原理。 – 2015-01-29 22:34:33
我不確定我明白你爲什麼需要基於瀏覽器的客戶端。是一個基於全面調試器的客戶端嗎? – 2011-04-01 10:40:28
嘿,那裏,我在遊戲開發工作,我需要一些通用的,我可以編譯和運行在幾個架構。製作一個基於Web瀏覽器的客戶端對我來說是理想的選擇。 – Goles 2011-04-01 15:13:00