From 939ef564ceb1d97c8328842187bf47340702715e Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Wed, 13 Aug 2014 21:12:07 +0800 Subject: [PATCH] debug run extract proto's upvalues --- lualib/skynet/debug.lua | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lualib/skynet/debug.lua b/lualib/skynet/debug.lua index 0f68dd1b..6f30d4e5 100644 --- a/lualib/skynet/debug.lua +++ b/lualib/skynet/debug.lua @@ -86,7 +86,19 @@ function dbgcmd.RUN(source, filename) local unique = {} getupvaluetable(u, dispatch_func, unique) getupvaluetable(u, skynet.register_protocol, unique) - local env = setmetatable( { print = print , _U = u }, { __index = _ENV }) + local p = {} + local proto = u.proto + if proto then + for k,v in pairs(proto) do + local name, dispatch = v.name, v.dispatch + if name and dispatch then + local pp = {} + p[name] = pp + getupvaluetable(pp, dispatch, unique) + end + end + end + local env = setmetatable( { print = print , _U = u, _P = p}, { __index = _ENV }) local func, err = load(source, filename, "bt", env) if not func then skynet.ret(skynet.pack(err))