起動時の自動実行スクリプト
ので,以下のようにすることをおすすめします.
LUA_RUN_SCRIPT=/bootscript.luaFlashAirの持ち味であるファイル書き込み時実行スクリプト
LUA_SD_EVENT=/writescript.luaこれらは,ブラウザと違い出力を確認できないため,デバッグはそのままでは困難です.
ので,以下のようにすることをおすすめします.
pcall関数を使って関数呼び出しをすることで,インタプリタのエラーを
捕まえることができます.この出力をファイルに書き込むことでエラーを残すことができます.
※ただし,pcallは別のファイルにすることをおすすめします.
というのも,文法エラーが含まれたファイルは読み込んだ時点で落ちるため,
結果的にエラー出力がされません
debug.lua
捕まえることができます.この出力をファイルに書き込むことでエラーを残すことができます.
※ただし,pcallは別のファイルにすることをおすすめします.
というのも,文法エラーが含まれたファイルは読み込んだ時点で落ちるため,
結果的にエラー出力がされません
debug.lua
f = loadfile("body.lua")
local flag, ret = pcall(f)
if not flag then
print("!!! Lua error detected.!!!\n")
print(ret)
else
print("<!-- OK -->")
end
起動後,eva.cgiを叩くことで,LUAスクリプトが正常に動作しているかわかります.
printの出力も,エラー出力も表示されます.
bootscript.luaの内容
eva.cgiの出力
eva.cgiの場合,リアルタイムに出力されるため,ファイル書き込みが発生しているかどうかも
確認することができます.
printの出力も,エラー出力も表示されます.
bootscript.luaの内容
print("running bootscript...")
error("I'M BOOTSCRIPT!") --意図的にエラーを発火させる
eva.cgiの出力
> f_TELNET start lua /bootscript.lua running bootscript... lua: /bootscript.lua:2: I'M BOOTSCRIPT! stack traceback: [C]: in function 'error' /bootscript.lua:2: in main chunk [C]: in ? > SCAN CH=1 SCAN CH=2
eva.cgiの場合,リアルタイムに出力されるため,ファイル書き込みが発生しているかどうかも
確認することができます.
lua /writescript.lua running writescript... lua: /writescript.lua :2: I'M WRITESCRIPT! stack traceback: [C]: in function 'error' /writescript.lua :2: in main chunk [C]: in ? >

コメントをかく