

if ( !debug ) then return end



--[[---------------------------------------------------------

   Name: Trace

   Desc: Dumps a trace to the console..

   

Trace: 

	1: Line 21	"Trace"			includes/extensions/debug.lua

	2: Line 222	"WriteTable"	includes/modules/saverestore.lua

	3: Line 170	"WriteVar"		includes/modules/saverestore.lua

	4: Line 259	"WriteTable"	includes/modules/saverestore.lua

	5: Line 170	"WriteVar"		includes/modules/saverestore.lua

	6: Line 259	"WriteTable"	includes/modules/saverestore.lua

	7: Line 272	"Func"			includes/extensions/entity_networkvars.lua

	8: Line 396	"(null)"		includes/modules/saverestore.lua

	

	This trace shows that the function was called from the engine (line 8) in save restore.

	Save restore then called something in entity_networkvars for some reason. Then

	that function called WriteTable(6), which called other functions until it got to the trace

	in 1 which was called by WriteTable in saverestore.lua

   

-----------------------------------------------------------]]

function debug.Trace()



	local level = 1

	  

	Msg( "\nTrace: \n" )

	  

	while true do

	  

		local info = debug.getinfo(level, "Sln")

		if (!info) then break end

		

		if (info.what) == "C" then

		

			Msg(level, "\tC function\n")

		  

		else

		

			Msg( string.format( "\t%i: Line %d\t\"%s\"\t%s\n", level, info.currentline, info.name, info.short_src ) )

		  

		end

		

		level = level + 1

		

	end

	  

	Msg( "\n\n" )

	  

end

