Bootstrap

如何利用Idea和Emmy插件调试Xlua项目

今天介绍一下如果用Idea调试xlua项目。

一.首先,从Idea新建一个lua空项目。这里命名为xluaDebug。

二.然后将已有xlua项目(腾讯官方xLua-master项目)导入到新建好的xluaDebug项目。

1.打开File->Project Structure->Modules,点击右侧“Add Content Root”,填写xLua-master项目的lua目录,我这里是“E:\WorkPlace\xLua-master\Assets\XLua\Examples”,OK确定。

2.设置某个案例场景的源码目录,我这里选择“02_U3DScripting”文件夹,然后点击上侧的Sources按钮,OK。

三.调试方式一

1.点击Run->Edit Configurations,点击上侧加号,然后从下拉列表中选择“Emmy Debugger(NEW)”,新建一个配置项,参数如下:

2.记得复制上面提供的lua代码:

package.cpath = package.cpath .. ';C:/Users/Admin/.IntelliJIdea2019.3/config/plugins/intellij-emmylua/classes/debugger/emmy/windows/x64/?.dll'
local dbg = require('emmy_core')
dbg.tcpListen('localhost', 9966)
dbg.waitIDE() --让Unity停下来等待Idea开启调试
dbg.breakHere() --硬断点,强制等待

3.粘贴至要调试的lua代码头部位置:

4.先运行Unity场景,Unity会作为服务器,等待Idea开启Debug,点击Debug按钮开始调试。

四.调试方式二

1.点击Run->Edit Configurations,点击上侧加号,然后从下拉列表中选择“Emmy Debugger(NEW)”,新建一个配置项,参数如下:

2.记得复制上面提供的lua代码:

package.cpath = package.cpath .. ';C:/Users/Admin/.IntelliJIdea2019.3/config/plugins/intellij-emmylua/classes/debugger/emmy/windows/x64/?.dll'
local dbg = require('emmy_core')
dbg.tcpConnect('localhost', 9966)
dbg.breakHere()

3.粘贴至要调试的lua代码头部位置:

4.先点击Debug按钮开始调试,Idea会作为服务器,等待Unity场景运行。

 

发现的缺点:1.和普通的断点含义不一样,lua脚本每执行一步都是一个断点,所以不需要我们手动打断点,打了也没用。2.如果关闭了调试,需要重新运行Unity场景才能开启下一次调试。

欢迎加群讨论:805629309

 

;