1. 程式人生 > >【LUA】除錯小技巧

【LUA】除錯小技巧

Lua除錯記錄

專案需要除錯lua,有兩個小方法記錄一下:

通過下載明文的lua指令碼,在開發板上直接修改和除錯

lua指令碼在拷貝到檔案系統後,通過luac進行加密,軟體執行時,在檔案系統中是看不到明文的lua指令碼內容。可以通過刪除tmp目錄下的luci-modulecache/ luci-sessions/目錄,重新下載明文的lua指令碼代替加密的lua指令碼,這時候就可以直接在板子上除錯了,有時候需要執行一下命令: /www/cgi-bin/luci 重新生成cache目錄;如果不清除tmp目錄下的luci-mudulecache和luci-sessions目錄,呼叫lua時出現錯誤:

/usr/lib/lua/luci/ccache.lua:81: error loading module 'luci.model.tfstats' from file '/usr/lib/lua/luci/model/tfstats.lua':
/usr/lib/lua/luci/model/tfstats.lua:62: malformed number near '0x100000000'
stack traceback:
[C]: in function 'loader'
/usr/lib/lua/luci/ccache.lua:81: in function </usr/lib/lua/luci/ccache.lua:72>
[C]: in function 'require'
/usr/lib/lua/luci/controller/admin/tfstats.lua:15: in main chunk
[C]: in function 'require'
/usr/lib/lua/luci/dispatcher.lua:532: in function 'createindex_plain'
/usr/lib/lua/luci/dispatcher.lua:484: in function 'createindex'
/usr/lib/lua/luci/dispatcher.lua:563: in function 'createtree'
/usr/lib/lua/luci/dispatcher.lua:238: in function 'dispatch'
/usr/lib/lua/luci/dispatcher.lua:195: in function </usr/lib/lua/luci/dispatcher.lua:194>

直接通過命令呼叫lua指令碼中的函式介面進行除錯

比如要除錯controller/admin/目錄下的testmodel.lua中的api函式get_helloworld,編輯好檔案後,可以直接在串列埠中輸入命令:lua -e ‘require(“luci.controller.admin.testmodel”).get_helloworld()’
進行除錯

以上兩個小技巧,提升lua在開發板上的除錯效率,mark一下。