• VS Code断点调试Cosos Lua(Mac)


    1. 安装luaide,在扩展里面搜索luaide(推荐使用最新版本)

    2. 生成调试配置

    参数说明

    name: 命名调试器的名字
    type: 配置类型,不需要修改
    request: 请求配置类型
    runtimeType: 运行时类型,不需要修改支持:Lua51, Cocos2, Cocos3, Unity
    localRoot: 调试文件夹目录
    manFile: 启动的lua文件名
    commandLine: 删除了原有的mainFile配置,可直接填写命令参数,其相关的配置有:
        -workdir 设置项目目录,等同于 player Open Project 对话框中的 Project Directory
        -file 设置启动脚本,等同于 Open Project 对话框中 Script File
        -writable 设置 device.writablePath 对应的路径,未指定时为项目目录
        -package.path 设置附加的 Lua 模块加载路径,格式为 “/mylualib1;/mylualib2;;”,用 “;” 分割多个路径,最后一个 “;” 表示 -workdir 所指目录
        -size 设置模拟器的屏幕尺寸,格式为“宽度x高度”
        -scale 设置模拟器的缩放比例,格式为 “1.0”,“0.5” 等数值
        -write-debug-log 将调试信息写入 debug.log 文件,该文件存放于项目目录中
        -disable-write-debug-log 禁止写入调试信息到 debug.log 文件
        -console 显示调试信息控制台窗口
        -disable-console 禁止调试信息控制台窗口
        -load-framework 载入 QUICK_COCOS2DX_ROOT 环境变量所指 quick-cocos2d-x 目录中的预编译框架文件
        -disable-load-framework 禁止载入预编译框架文件
        -offset 启动时模拟器窗口的偏移位置,格式为 “{X偏移量,Y偏移量}”
    
    port: 调试端口,和调试代码中的端口一致即可。如果有多个VsCode工程,建议端口双方的端口不一致,否则调试无效
    exePath: 执行文件路径,注意:
        在widnows中,可填入其exe的完整路径
        在mac中可找到对应的desktop app项目,然后右键->显示包内容->Contents/MacOS/AppName, 可不添加其后缀
    print: print打印方式:1 控制台和系统输出 2 控制台输出 3 系统输出

    3.调试代码添加

    下载对应的LuaDebug 或 LuaDebugjit 后放入脚本目录中

    local breakSocketHandle,debugXpCall = require("LuaDebugjit")("192.168.1.102",7003)   
    local breakSocketHandle,debugXpCall = require("LuaDebugjit")("localhost",7003) 
    1. IP地址当本机调试时可使用localhost远程调试或移动设备端调试是需要输入调试器所在机器具体的ip 
    2. port 端口 LuaIde 默认配置中端口为7003  如有需要可执行更改确保调试器配置端口和调用
    代码的端口统一即可  
    3. breakSocketHandle luaIde断点及时刷新函数,需要在定时器中调用 该函数确保断点能够及时的
    发送到lua 客户端  
    4. debugXpCall 程序异常监听函数,用于当程序出现异常时调试器定位错误代码 

    cocos2.x

    local breakSocketHandle,debugXpCall = require("LuaDebug")("localhost",7003)
    CCDirector:sharedDirector():getScheduler():scheduleScriptFunc(breakSocketHandle ,0.3,false)
    --如果已经存在 __G__TRACKBACK__ 请将 debugXpCall 直接加入 __G__TRACKBACK__ 即可
    --__G__TRACKBACK__ 方法不是必须 debugXpCall是实现的是在lua 脚本调用错误时进行代码错误定位
    function __G__TRACKBACK__(errorMessage)
    debugXpCall();
    end
    local status, msg = xpcall(main, __G__TRACKBACK__)

    cocos3.x

    注意:由于cocos3.x 较高版本对全局变量进行了限制 所以 调试代码需要添加在 require “cocos.init” 之前

    local breakSocketHandle,debugXpCall = require("LuaDebugjit")("localhost",7003)
    cc.Director:getInstance():getScheduler():scheduleScriptFunc(breakSocketHandle, 0.3, false) 
    --如果已经存在 __G__TRACKBACK__ 请将 debugXpCall 直接加入 __G__TRACKBACK__ 即可
    --__G__TRACKBACK__ 方法不是必须 debugXpCall是实现的是在lua 脚本调用错误时进行代码错误定位 
    function __G__TRACKBACK__(errorMessage)  
        debugXpCall();  
    end  
    local status, msg = xpcall(main, __G__TRACKBACK__)

    拷贝调试文件 

  • 相关阅读:
    lua时间戳和日期转换及踩坑【转】
    Js正则表达式验证输入是否有特殊字符【转】
    PHP数据类型转换【转】
    JavaScript indexOf() 方法
    CSS文本下划线 删除线 上划线【转】
    PHP中把stdClass Object转array的几个方法【转】
    2020软件工程作业02
    2020软件工程作业01
    2020 CCPC Wannafly Winter Camp Day1-F-乘法
    牛客-装货物
  • 原文地址:https://www.cnblogs.com/ring1992/p/15194318.html
Copyright © 2020-2023  润新知