From 7e5ab8c48c38bfe3933838b24ba8d63accf79626 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Sat, 15 Sep 2012 16:38:28 +0800 Subject: [PATCH] debug info --- lualib/skynet.lua | 14 ++++++++++++++ service/dbg.lua | 5 +++-- service/launcher.lua | 9 +++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/lualib/skynet.lua b/lualib/skynet.lua index 348e7b0b..1f678548 100644 --- a/lualib/skynet.lua +++ b/lualib/skynet.lua @@ -394,6 +394,12 @@ end ----- debug +local internal_info_func + +function skynet.info_func(func) + internal_info_func = func +end + local dbgcmd = {} function dbgcmd.MEM() @@ -416,6 +422,14 @@ function dbgcmd.STAT() skynet.ret(skynet.pack(stat)) end +function dbgcmd.INFO() + if internal_info_func then + skynet.ret(skynet.pack(internal_info_func())) + else + skynet.ret(skynet.pack(nil)) + end +end + local function _debug_dispatch(session, address, cmd, ...) local f = dbgcmd[cmd] assert(f, cmd) diff --git a/service/dbg.lua b/service/dbg.lua index e4b42dc2..7ce43244 100644 --- a/service/dbg.lua +++ b/service/dbg.lua @@ -1,11 +1,12 @@ local skynet = require "skynet" +local print_r = require "print_r" local cmd = { ... } skynet.start(function() local list = skynet.call(".launcher","lua", unpack(cmd)) - for k,v in pairs(list) do - print(k,v) + if list then + print_r(list) end skynet.exit() end) \ No newline at end of file diff --git a/service/launcher.lua b/service/launcher.lua index 0d721016..35563f88 100644 --- a/service/launcher.lua +++ b/service/launcher.lua @@ -26,6 +26,15 @@ function command.STAT() skynet.ret(skynet.pack(list)) end +function command.INFO(handle) + if services[handle] == nil then + skynet.ret(skynet.pack(nil)) + else + local result = skynet.call(handle,"debug","INFO") + skynet.ret(skynet.pack(result)) + end +end + function command.KILL(handle) skynet.kill(handle) skynet.ret( skynet.pack({ [handle] = tostring(services[handle]) }))