读取了一块内存,在LUA里直接输出,会提示USERDATA类型的错误。请问一下,我怎样才能知道我读取的数据是什

读取了一块内存,在LUA里直接输出,会提示USERDATA类型的错误。请问一下,我怎样才能知道我读取的数据是什,第1张

我觉得你这里表述有错误

你说是在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()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9897084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存