From 18a36c171fd82ca8aa7512ed43d20d9a985025e3 Mon Sep 17 00:00:00 2001 From: btt Date: Thu, 23 Aug 2018 16:54:06 +0800 Subject: [PATCH] debug console inject cmd support args --- lualib/skynet/debug.lua | 5 +++-- lualib/skynet/inject.lua | 4 ++-- service/debug_console.lua | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lualib/skynet/debug.lua b/lualib/skynet/debug.lua index 802548ee..aeec0e3e 100644 --- a/lualib/skynet/debug.lua +++ b/lualib/skynet/debug.lua @@ -50,9 +50,10 @@ local function init(skynet, export) skynet.exit() end - function dbgcmd.RUN(source, filename) + function dbgcmd.RUN(source, filename, ...) local inject = require "skynet.inject" - local ok, output = inject(skynet, source, filename , export.dispatch, skynet.register_protocol) + local args = table.pack(...) + local ok, output = inject(skynet, source, filename, args, export.dispatch, skynet.register_protocol) collectgarbage "collect" skynet.ret(skynet.pack(ok, table.concat(output, "\n"))) end diff --git a/lualib/skynet/inject.lua b/lualib/skynet/inject.lua index 46c1c8ae..e9577597 100644 --- a/lualib/skynet/inject.lua +++ b/lualib/skynet/inject.lua @@ -18,7 +18,7 @@ local function getupvaluetable(u, func, unique) end end -return function(skynet, source, filename , ...) +return function(skynet, source, filename, args, ...) if filename then filename = "@" .. filename else @@ -56,7 +56,7 @@ return function(skynet, source, filename , ...) if not func then return false, { err } end - local ok, err = skynet.pcall(func) + local ok, err = skynet.pcall(func, table.unpack(args, 1, args.n)) if not ok then table.insert(output, err) return false, output diff --git a/service/debug_console.lua b/service/debug_console.lua index 6ca3a6c6..ab1af39f 100644 --- a/service/debug_console.lua +++ b/service/debug_console.lua @@ -237,7 +237,7 @@ function COMMAND.exit(address) skynet.send(adjust_address(address), "debug", "EXIT") end -function COMMAND.inject(address, filename) +function COMMAND.inject(address, filename, ...) address = adjust_address(address) local f = io.open(filename, "rb") if not f then @@ -245,7 +245,7 @@ function COMMAND.inject(address, filename) end local source = f:read "*a" f:close() - local ok, output = skynet.call(address, "debug", "RUN", source, filename) + local ok, output = skynet.call(address, "debug", "RUN", source, filename, ...) if ok == false then error(output) end