1.使用如下方式封装c++的控制台输出方法并导出给lua使用,可以使lua输出信息以绿色显示:
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole,FOREGROUND_GREEN | FOREGROUND_INTENSITY);
(CCLOG输出一行信息)
SetConsoleTextAttribute(hConsole, 7);
同理,对c++调用的控制台输出方法也进行颜色统一的封装,可以使控制台输出更为明显,方便调试。
2.输出lua堆栈可以用如下方式:
function my_stack_print(...)
print(...)
print("---------------------------")
for level = 2, math.huge do
local level_info = debug.getinfo(level,'Sln')
-- 没有数据了就终止
if not level_info then
break;
end
for k,v in pairs(level_info) do
if (k == 'name' or k == 'currentline' or k =='short_src') and v ~= nil then
local str = string.format('%s:%s',tostring(k),tostring(v))
print(str)
end
end
print("---------------------------")
end
end