0

「luaL_dofile」行でエラーが発生し、デバッガーはエラーについて何も表示しません。

コマンド「luaL_dostring」を使用できますが、dofile できない理由がわかりません。

私のコードは次のとおりです。

const char* file = "/app_home/data/minigames/mg_hint_machine_2.lua";
ret = luaL_dofile(LS, file);
if(ret != 0){
    PRINTF("Error occurs when calling luaL_dofile() Hint Machine 0x%x\n",ret);
    }
else PRINT("\nDOFILE SUCCESS");

デバッガーはこの行にエラーを表示し、「ret」はまだ dofile から戻り値を取得しません。

デバッガでエラーについて見たい場合

02C2D304 7C21016A stdux r1、r1、r0 03 (02C2D300) REG パイプ LSU

デバッガーはこの行を指していますが、理解できません。

4

2 に答える 2

4

superzilla の回答 (この回答ではなくその回答に賛成票を投じる) の詳細として、エラー メッセージを取得するには、コードを次のようにする必要があります。

const char* file = "/app_home/data/minigames/mg_hint_machine_2.lua";
ret = luaL_dofile(LS, file);
if(ret != 0){
  PRINTF("Error occurs when calling luaL_dofile() Hint Machine 0x%x\n",ret);
  PRINTF("Error: %s", lua_tostring(LS,-1));
}
else PRINT("\nDOFILE SUCCESS");

(コメント内の) 変更により が に変更されたluaL_dofileため、luaL_dostring予期しないエラー メッセージが表示されます (ここで説明したように)。

于 2012-08-17T06:08:07.137 に答える
1

これを if ステートメントの本文に入れると、問題を絞り込むのに役立ちます。

printf("%s\\n",lua_tostring(LS,-1));

クラッシュ時に Lua が何を報告しているかがわかります。

于 2012-08-17T01:56:26.727 に答える