美文网首页
0905 - lite 更好的调试

0905 - lite 更好的调试

作者: 自由快挂 | 来源:发表于2017-09-05 09:29 被阅读19次

    "你以后想成为什么样的人?"
    "什么意思,难道我以后就不能成为我自己吗?"

    除了上一篇提到的支持 zbs 调试,这是在开发遇到瓶颈的时候才会拿出来用。因为 zbs 的编辑功能是在和 sublime 不能相比。

    在日常开发中,还是依靠 print 输出调试居多,但是默认调试器的堆栈信息略少。于是增加了一个 StackTracePlus 的 Lua 库。

    如果在发生崩溃时,模拟器能提示一下,甚至点击一下就能够跳转到响应的文件行数,那就很棒了。
    方案如下,目前只支持 Mac 的 Sublime 编辑器:

    __G__TRACKBACK__ = function ( msg )
    
        local message = msg
        local msg, origin_error = debug.traceback(msg, 3)
        print(msg)
    
        -- report lua exception
        if device.platform == 'mac' then
            local msg = debug.getinfo(2)
            local info = cc.Label:createWithSystemFont(message, 'sans', 32)
            info:setWidth(display.width)
            info:setAnchorPoint(cc.p(0,1))
            info:setPosition(0, display.height)
            info:setTextColor(cc.c4b(255,0,0,255))
            cc.Director:getInstance():getRunningScene():addChild(info, 998)
    
            local function onTouchBegan(touch, event)
                return true
            end
            local function onTouchEnded(touch, event)
                os.execute(string.format('subl %s:%d', cc.FileUtils:getInstance():fullPathForFilename(msg.source), msg.currentline))
                info:removeSelf()
            end
    
            local listener = cc.EventListenerTouchOneByOne:create()
            listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN)
            listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )
            local eventDispatcher = info:getEventDispatcher()
            eventDispatcher:addEventListenerWithSceneGraphPriority(listener, info)
        end
    
        return msg
    end
    

    https://github.com/c0i/cocos2dx-lite/blob/dev/src/main.lua#L31-L52

    投放到群里,反应不太强烈,都在搞各种山寨币。把这个小工具先放在自己的日常工作里面试一下,看看究竟能不能带来帮助吧。

    相关文章

      网友评论

          本文标题:0905 - lite 更好的调试

          本文链接:https://www.haomeiwen.com/subject/cpxujxtx.html