起動時の自動実行スクリプト
ので,以下のようにすることをおすすめします.
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 ? >
コメントをかく