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 PIPE 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");

Your change (in the comments) changed the luaL_dofile to a luaL_dostring, which is why you're getting unexpected error message ( as mentioned here ).

于 2012-08-17T06:08:07.137 回答
1

将其放在 if 语句的正文中将有助于我们缩小问题范围:

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

它会告诉我们 Lua 在崩溃时报告了什么。

于 2012-08-17T01:56:26.727 回答