Emmylua调试Lua记录

2024/08 30 22:08

起因:

Emmylua可以用于Unity开发与调试,如果不用Unity+XLua

local dbg = require('emmy_core') 
print("emmylua=" .. tostring(dbg))
local ret = dbg.tcpListen('127.0.0.1',9988)
print("listen="..tostring(ret))

自己用官方的Lua 5.3.5应用程序启动脚本,发现无法启动调试

Unity+XLua+VSCode正常情况下,会输出
emmylua=xxxxxxx
listen=true

但是用Lua+VSCode,会输出
emmylua=true

在Github上分别下载EmmyLuaDebugger和CMake3.30.2,用CMake打开EmmyLuaDebugger

配置如下 – 勾选EMMY_USE_LUA_SOURCE, EMMY_LUA_VERSION设置为53

再编译emmy_core,发现可以正常调试


// lua_version.h
#pragma once

// lua version
enum class LuaVersion {
	UNKNOWN,
	LUA_JIT = 50,
	LUA_51 = 51,
	LUA_52 = 52,
	LUA_53 = 53,
	LUA_54 = 54,
};

extern LuaVersion luaVersion;
// lua_version.cpp
#if EMMY_LUA_51
LuaVersion luaVersion = LuaVersion::LUA_51;
#elif EMMY_LUA_52
LuaVersion luaVersion = LuaVersion::LUA_52;
#elif EMMY_LUA_53
LuaVersion luaVersion = LuaVersion::LUA_53;
#elif EMMY_LUA_54
LuaVersion luaVersion = LuaVersion::LUA_54;
#elif EMMY_LUA_JIT
LuaVersion luaVersion = LuaVersion::LUA_JIT;
#else
LuaVersion luaVersion = LuaVersion::UNKNOWN;
#endif