內容如題目
lua**如下:
file: test.lua
local c
c.a = 123
c**如下:
file: test.c
#include
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
static
int traceback( lua_state *l)
else
}int main(int argc, char ** argv)
//第四個引數表示將錯誤資訊msg傳入棧1所在的函式(錯誤處理函式)
r = lua_pcall(l,0,0,1);
if (r != lua_ok)
printf("call err\n%s\n", lua_tostring(l,-1));
else
printf("call succ\n");
return
0;}
complie:
gcc -o test test.c -llua
-ldl
-lm
run
./test
result:
call err
test.lua:2: attempt to index local
'c' (a nil value)
stack traceback:
test.lua:2: in main chunk
錯誤資訊包含檔案,出錯行號,錯誤原因,呼叫棧. lua調c動態庫
lua 指令碼調c 動態庫函式時開始調不成功,通過 lua官方的 mail list 才知道 c動態庫里的註冊函式和 lua指令碼的開啟庫的方式要一致。1.c動態庫的 static int lua msgbox lua state l int declspec dllexport luaopen d...
C函式返回多個引數給lua
lua通過乙個執行時棧來維護引數傳遞及返回,使用lua to 等函式獲取lua傳遞到c函式的引數,使用lua push 從c函式返回值到lua指令碼。此外也可以使用lua getglobal從c函式獲取lua指令碼定義的全域性變數。include include include for functi...
Lua呼叫C 時列印堆疊資訊
公司的手遊專案,使用的是基於cocos2d x綁lua的解決方案 引數quick x的繫結 雖然使用了lua進行開發,更新很爽了,但是崩潰依然較為嚴重,從後台檢視崩潰日誌時,基本上只能靠 猜 來復現bug。更為鬱悶的是很多時候並沒有使用log輸出,在崩潰日誌裡還無法檢視大概在哪一步操作崩潰的 後來在...