unity搭建xlua和emmy_lua的debug环境
admin
2024-01-21 12:19:46
0

配置步骤

1 环境

1.1 vscode 安装emmy_lua

1.2 安装对应的lua版本

1.3 安装java8并配置环境

1.4 emmy_lua的github上下载emmy_lua的64位版本,解压放到工程目录client\Tools\EmmyLua\

下载地址:https://github.com/EmmyLua/EmmyLuaDebugger/releasesicon-default.png?t=M85Bhttps://github.com/EmmyLua/EmmyLuaDebugger/releases

结构如下

client

——Assets

——Tools\EmmyLua

——EasyHook.dll

——emmy_core.dll

——emmy_hook.dll

2 程序启动时执行下面的代码

local function split(line, sep, maxsplit)if string.len(line) == 0 thenreturn {}endsep = sep or " "maxsplit = maxsplit or 0local retval = {}local pos = 1local step = 0while true dolocal from, to = string.find(line, sep, pos, true)step = step + 1if (maxsplit ~= 0 and step > maxsplit) or not from thenlocal item = string.sub(line, pos)table.insert(retval, item)breakelselocal item = string.sub(line, pos, from - 1)table.insert(retval, item)pos = to + 1endendreturn retval
end--连接EmmyLua
local function connectEmmyLua()local func = function()local assets = CS.UnityEngine.Application.dataPathlocal assetDict = split(assets, "/")local path = ''for i = 1, #assetDict-1 dopath = path .. assetDict[i] .. '/'endpackage.cpath = package.cpath .. ';' .. path .. 'Tools/EmmyLua/emmy_core.dll'local dbg = require('emmy_core')dbg.tcpConnect('localhost', 9966)endlocal handle = function(error)print('IDE没有开启调试', error)endxpcall(func, handle)
end

3 配置debug使用的launch.json

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "emmylua_new","request": "launch","name": "EmmyLua New Debug","host": "localhost","port": 9966,"ext": [".lua",".lua.txt",".lua.bytes",".txt"],"ideConnectDebugger": false},]
}

4 如果是xlua,修改自定义的LuaLoader

这里有个坑,比如lua中require("game.xxx.XX")

在自定义loader中,public byte[] CustomLoader(ref string luaPath)

luaPath则为game.xxx.XX

如果不对这个luaPath做什么,emmylua的断点无法生效,也不会报错,就什么也不发生,简单查阅emmylua插件的源码,没找到关联到lua源码的代码

后来使用breakHere方法,强制进到一个lua断点,但是报错"无法加载源",看不到源码。

local dbg = require('emmy_core')
dbg.tcpConnect('localhost', 8866)
dbg.breakHere()

我猜是不是xlua那边传给emmylua的路径不对呢?

如果想让emmylua断点后可以找到文件需要重新赋值这个luaPath为真实的文件路径

luaPath = GetRealPath(luaPath)

解决问题

5 vscode启动debug

6 设置断点后运行游戏

参考资料

VSCode使用EmmyLua调试Lua代码_HKW_hankangwen的博客-CSDN博客_emmylua vscode

相关内容

热门资讯

一秒推:提升AI相关性所需的G... 在提升AI相关性的过程中,内容概要发挥着重要作用。通过明确内容的主题和重点,企业能够确保信息与消费者...
有色金属、旅游板块,多股涨停! 今日早盘,A股低开震荡调整,上证指数下试4100点支撑,科创50开盘跌破1500点,深证成指、北证5...
一张券,在武汉换了套三室两厅! 武汉旧城改造“出新招”了 一张“购房券” 让居民告别“老破小” 自主选新房 居民一家在新房合影留念...
白癜风医生郑华国:白癜风患者的... 冬季气候寒冷、干燥,对白癜风患者的皮肤和机体状态都有一定影响,护理的核心是“保暖防寒、保湿修复”。冬...
长宁国资入主淳厚基金 股东内斗... 1月10日,淳厚基金发布公告称,根据股东会决议,并经中国证券监督管理委员会《关于核准淳厚基金管理有限...
151家上市公司抢先披露202... 截至目前,A股上市公司陆续发布2025年年报业绩预告。 iFinD数据显示,截至1月14日,A股共有...
机构席位卖出5336.95万 ... 每经讯,2026年1月15日,北交所上市公司星图测控(920116,收盘价:115.4元)登上龙虎榜...
三晖电气大宗交易折价成交126... 三晖电气01月15日大宗交易平台共发生1笔成交,合计成交量126.00万股,成交金额2548.98万...
小米SU7将改款,雷军:保值率... 1月15日,小米创办人、董事长兼CEO雷军回应小米SU7保值率一事。 雷军转载2025年第四季度1...
2025中国产业带发展趋势报告 今天分享的是:2025中国产业带发展趋势报告 报告共计:18页 2025中国产业带发展趋势总结 20...
央行回应降准降息:今年还有降准... 南都讯记者潘珊菊 发自北京 关于今年降准降息空间还有多大?中国人民银行新闻发言人、副行长邹澜1月15...
智谱和MiniMax上市表现亮... 文 | 梅花鹿观察 佘宗明 如果要为中国大模型行业2026年开年来拿到的剧本起名字,那最合适的四个...
监管批复!汪强就任嘉善联合村镇... 2026年1月15日,根据国家金融监督管理总局消息,《浙江嘉善联合村镇银行股份有限公司关于汪强行长任...
原创 2... 2000枚以太币换别墅!证监会前司长栽了,虚拟货币不是避风港?普通人必看避坑指南 2026年1月14...
整体降费300亿元!公募基金销... 文丨杨练 编辑丨李恒春 本次公募基金销售端改革预示三阶段费改正式落地,有望降低投资者成本,旨在引导投...
钱大妈提交上市申请;安踏或收购... -上市动态- 钱大妈提交上市申请 港交所官网披露了钱大妈国际控股有限公司在港交所提交的上市申请...
央行:贷款利率、首付比例下调 今日快讯 刚刚,国新办召开新闻发布会,推出关于企业贷款利率、商业用房贷款首付比例下调等金融政策: 具...
消费观察|袁记云饺赴港递表:中... 深圳新闻网2026年1月15日讯(记者 常军平)在竞争激烈的中式快餐赛道,一颗从广东街头起家的“云饺...
四点半观市 | 机构:逆周期调... 深成指、创业板指尾盘翻红,半导体产业链震荡走强;供应扰动推动投机资金涌入推升锡价,警惕资金获利了结引...