error yes查看lua调用栈 no进行调试如下图,一老弹出来,怎么解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error yes查看lua调用栈 no进行调试如下图,一老弹出来,怎么解决?相关的知识,希望对你有一定的参考价值。

参考技术A lua调用C++函数崩溃时,查看lua的调用栈信息(特别适用于tolua++) - ...
tolua_error(tolua_S,"invalid 'self' in function 'addChild'", NULL); #endif // 打印lua调用栈开始 lua_... 弹出的参数数量和Lua函数实际返回的参数不一致(堆栈失衡)
参考技术B 一样的问题,你有没有解决?

lua.c:80:31: fatal error: readline/readline.h: No such file or directory

make linux
cd src && make linux
make[1]: Entering directory `/root/lua/lua-5.3.2/src‘
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
make[2]: Entering directory `/root/lua/lua-5.3.2/src‘
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lua.o lua.c
lua.c:80:31: fatal error: readline/readline.h: No such file or directory
#include <readline/readline.h>
^
compilation terminated.
make[2]: *** [lua.o] Error 1
make[2]: Leaving directory `/root/lua/lua-5.3.2/src‘
make[1]: *** [linux] Error 2
make[1]: Leaving directory `/root/lua/lua-5.3.2/src‘
make: *** [linux] Error 2

解决方法:
缺少libreadline-dev依赖包
centos: yum install readline-devel
debian: apt-get install libreadline-dev.

http://www.vcerror.com/?p=1786

 

# make linux
cd src && make linux
make[1]: Entering directory `/home/lua/lua-5.3.2/src‘
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
make[2]: Entering directory `/home/lua/lua-5.3.2/src‘
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lua.o lua.c
gcc -std=gnu99 -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o luac.o luac.c
gcc -std=gnu99 -o luac luac.o liblua.a -lm -Wl,-E -ldl -lreadline
make[2]: Leaving directory `/home/lua/lua-5.3.2/src‘
make[1]: Leaving directory `/home/lua/lua-5.3.2/src‘

 

以上是关于error yes查看lua调用栈 no进行调试如下图,一老弹出来,怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

lua 栈最后调用的函数,用于看调试信息

lua C API

深入xLua实现原理之C#如何调用Lua

如何用python编写弹出对话框,并选择yes/no

从lua的c源码了解lua栈结构和函数调用流程

lua和go混合调用调试记录支持跨平台(通过C和LuaJit进行实现)