Lua 简易调试

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

  

 

posted @ 2015-05-07 18:21  skipop  阅读(526)  评论(0编辑  收藏  举报