Forráskód Böngészése

misc/examples: kemi lua - added debug callback function

- commented - can be enabled to track the execution trace of the lua
script

(cherry picked from commit 491a8327933cb4471260fdd09ff93296a7a0ccfd)
Daniel-Constantin Mierla 5 éve
szülő
commit
3195b85910
1 módosított fájl, 37 hozzáadás és 0 törlés
  1. 37 0
      misc/examples/kemi/kamailio-basic-kemi-lua.lua

+ 37 - 0
misc/examples/kemi/kamailio-basic-kemi-lua.lua

@@ -12,6 +12,43 @@
 --  the execution of the script. Use KSR.x.exit() after it or KSR.x.drop()
 --
 
+-- debug callback function to print details of execution trace
+--[[
+local ksr_exec_level=0
+
+local function ksr_exec_hook(event)
+	local s = "";
+	local t = debug.getinfo(3)
+	s = s .. ksr_exec_level .. ">>> " .. string.rep(" ", ksr_exec_level);
+	if t~=nil and t.currentline>=0 then
+		s = s .. t.short_src .. ":" .. t.currentline .. " ";
+	end
+	t=debug.getinfo(2)
+	if event=="call" then
+		ksr_exec_level = ksr_exec_level + 1;
+	else
+		ksr_exec_level = ksr_exec_level - 1;
+		if ksr_exec_level < 0 then
+			ksr_exec_level = 0;
+		end
+	end
+	if t.what=="main" then
+		if event=="call" then
+			s = s .. "begin " .. t.short_src;
+		else
+			s = s .. "end " .. t.short_src;
+		end
+	elseif t.what=="Lua" then
+		s = s .. event .. " " .. t.name or "(Lua)" .. " <" .. t.linedefined .. ":" .. t.short_src .. ">";
+	else
+		s = s .. event .. " " .. t.name or "(C)" .. " [" .. t.what .. "] ";
+	end
+	KSR.info(s .. "\n");
+end
+
+debug.sethook(ksr_exec_hook, "cr")
+ksr_exec_level=0
+]]--
 
 -- global variables corresponding to defined values (e.g., flags) in kamailio.cfg
 FLT_ACC=1