MOOSE/Trace.lua
2015-12-01 10:57:07 +01:00

286 lines
7.3 KiB
Lua

--- Tracing functions...
-- @module trace
-- @author Flightcontrol
trace = {}
trace.names = {}
trace.classes = {}
trace.scheduledfunction = ""
trace.names.all = false
trace.names.New = false
trace.names.Inherit = false
--trace.names.ClientGroup = true
trace.names.Scheduler = false
trace.names.ToCoalition = false
trace.names.ToClient = false
trace.names.do_scheduled_functions = false
trace.names.main = false
trace.names.Meta = false
trace.names.mistdisplayV3 = false
trace.names.f = false
trace.names.Spawn = false
trace.names.SpawnTrack = false
trace.names.SpawnGroupAdd = false
trace.names.SpawnInfantry = false
trace.names.SpawnPrepare = false
trace.names.SpawnInit = false
trace.names.SpawnInitSchedule = false
trace.names.SpawnFromCarrier = false
trace.names.SpawnGroup = false
trace.names.SpawnMissionGroup = false
trace.names.SpawnScheduled = false
trace.names.SpawnInZone = false
trace.names.Spawn = false
trace.names.ShowCargo = false
trace.names.AddCargo = true
trace.names.RemoveCargo = false
trace.names.MenuAction = false
trace.names.DeploySA6TroopsGoal = false
trace.names.AddEvent = false
trace.names.onEvent = false
trace.names.EventShot = false
trace.names.EventDead = false
trace.names.EventFunction = false
trace.names.ShowGoalProgress = false
trace.names.ReportGoalProgress = false
trace.names.ProgressTrigger = false
trace.names.IsGoalReached = false
trace.names.Validate = false
trace.names.Execute = false
trace.names.EnableEvents = false
trace.names.DisableEvents = false
trace.names.IsCompleted = false
trace.names.GetGoalCount = false
trace.names.GetGoalTotal = false
trace.names.SetGoalTotal = false
trace.names.GetGoalPercentage = false
trace.names.deepCopy = false
trace.names._Scheduler = false
trace.names._GetTemplate = false
trace.names.FollowPlayers = false
trace.names.AddPlayerFromUnit = false
trace.names.FromCarrier = false
trace.names.OnDeadOrCrash = false
trace.classes.CLEANUP = true
trace.cache = {}
trace.tracefunction = function( functionname )
if functionname then
if trace.names[functionname] then
return true
else
return false
end
else
return false
end
end
trace.f = function(object, parameters)
local info = debug.getinfo( 2, "nl" )
if trace.names.all or trace.tracefunction( info.name ) or trace.classes[object] then
local objecttrace = ""
if object then
objecttrace = object
end
trace.nametrace = ""
if info.name then
trace.nametrace = info.name
end
local parameterstrace = "()"
if parameters then
parameterstrace = "( " .. routines.utils.oneLineSerialize( parameters ) .. " )"
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "F", objecttrace, "function " .. trace.nametrace .. parameterstrace ) )
end
end
trace.scheduled = function(object, func, parameters)
local info = debug.getinfo( 2, "l" )
if trace.names.all or trace.tracefunction( func ) then
local objecttrace = ""
if object then
objecttrace = object
end
trace.nametrace = ""
if func then
trace.nametrace = func
end
trace.scheduledfunction = trace.nametrace
local parameterstrace = "()"
if parameters then
parameterstrace = "( " .. routines.utils.oneLineSerialize( parameters ) .. " )"
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "S", objecttrace, "function " .. trace.nametrace .. parameterstrace ) )
end
end
trace.s = function(object, parameters)
local info = debug.getinfo( 3, "nl" )
if trace.names.all or trace.tracefunction( info.name ) then
local objecttrace = ""
if object then
objecttrace = object
end
trace.nametrace = ""
if info.name then
trace.nametrace = info.name
end
trace.scheduledfunction = trace.nametrace
local parameterstrace = "()"
if parameters then
parameterstrace = "( " .. routines.utils.oneLineSerialize( parameters ) .. " )"
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "S", objecttrace, "scheduled " .. trace.nametrace .. parameterstrace ) )
end
end
trace.si = function(object, variable)
local info = debug.getinfo( 3, "nl" )
if info.name ~= trace.nametrace then
trace.nametrace = info.name
end
if trace.names.all or trace.tracefunction( trace.nametrace ) then
local objecttrace = ""
if object then
objecttrace = object
end
local variabletrace = ""
if variable then
variabletrace = "( " .. routines.utils.oneLineSerialize( variable ) .. " )"
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "S", objecttrace, trace.nametrace .. variabletrace) )
end
end
trace.l = function(object, func, variable)
local info = debug.getinfo( 2, "l" )
if trace.names.all or trace.tracefunction( func ) then
local objecttrace = ""
if object then
objecttrace = object
end
trace.nametrace = ""
if func then
trace.nametrace = func
end
local variabletrace = ""
if variable then
variabletrace = "( " .. routines.utils.oneLineSerialize( variable ) .. " )"
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "L", objecttrace, trace.nametrace .. variabletrace) )
end
end
trace.menu = function(object, func)
if trace.names.all then
local objecttrace = ""
if object then
objecttrace = object
end
trace.nametrace = ""
if func then
trace.nametrace = func
end
env.info( string.format( "%6d/%1s:%20s.%s" , 0, "M", objecttrace, trace.nametrace .. "()" ) )
end
end
trace.r = function(object, step, variable)
local info = debug.getinfo( 2, "nl" )
if info.name ~= trace.nametrace then
trace.nametrace = info.name
end
if trace.names.all or trace.tracefunction( trace.nametrace ) then
local objecttrace = ""
if object then
objecttrace = object
end
local steptrace = ""
if step then
steptrace = "< " .. step .. " >"
end
local variabletrace = ""
if variable then
variabletrace = "( " .. routines.utils.oneLineSerialize( variable ) .. " )"
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "R", objecttrace, "return " .. trace.nametrace .. variabletrace ) )
end
end
trace.e = function(object)
local info = debug.getinfo( 2, "nl" )
if info.name ~= trace.nametrace then
trace.nametrace = info.name
end
if trace.names.all or trace.tracefunction( trace.nametrace ) then
local objecttrace = ""
if object then
objecttrace = object
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "E", objecttrace, "end " .. trace.nametrace ) )
end
end
trace.i = function(object, variable)
local info = debug.getinfo( 2, "nl" )
if info.name ~= trace.nametrace then
trace.nametrace = info.name
end
if trace.names.all or trace.tracefunction( trace.nametrace ) or trace.classes[ object ] then
local objecttrace = ""
if object then
objecttrace = object
end
local variabletrace = ""
if variable then
variabletrace = "( " .. routines.utils.oneLineSerialize( variable ) .. " )"
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "I", objecttrace, trace.nametrace .. variabletrace) )
end
end
trace.x = function( object, variable )
local info = debug.getinfo( 2, "nl" )
trace.nametrace = info.name
local objecttrace = ""
if object then
objecttrace = object
end
local variabletrace = ""
if variable then
variabletrace = "( " .. routines.utils.oneLineSerialize( variable ) .. " )"
end
env.info( string.format( "%6d/%1s:%20s.%s" , info.currentline, "I", objecttrace, trace.nametrace .. variabletrace) )
end