你说是在lua里输出 如果是lua里用print 相当于使用io.write(tostring(data))
任何类型的值都不会出现错误
你应该是在C里输出的时候print了一块lua里的userdata
所以你应该把输出的功能放到lua里 或者在C里把userdata里的数据读出来了再输出
xpcall 为什么这个方法不能满足需求 你使用xpcall 不是可以输出异常信息吗 然后你把debug.traceback()的信息写入文件不是就行了main.lua中__G__TRACKBACK__里插入
可以将错误日志写入文件
也可以上报到服务器
package.path = package.path .. ".app/protobuf/?.lua./scripts/app/protobuf/?.lua"
package.cpath = package.cpath .. '../protobuf/?.so'
print(package.path)
function __G__TRACKBACK__(errorMessage)
print("__G__TRACKBACK__111")
local path = CCFileUtils:sharedFileUtils():getWritablePath().."log.txt"
print(path)
io.writefile(path, "\r\n"..errorMessage, "a+b")
if "ASSERT FAILED ON LUA EXECUTE: CCHTTPRequest::getResponseString() - request not completed" ~= tostring(errorMessage) and
"ASSERT FAILED ON LUA EXECUTE: Request not completed" ~= tostring(errorMessage) then
print("----------------------------------------")
print("LUA ERROR: " .. tostring(errorMessage) .. "\n")
print(debug.traceback("", 2))
print("----------------------------------------")
end
end
local function startGame( ... )
collectgarbage("setpause", 100)
collectgarbage("setstepmul", 5000)
require("app.MyApp").new():run()
end
xpcall(startGame,__G__TRACKBACK__)
startGame()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)