Garry's Mod Wiki

debug.getinfo

  table debug.getinfo( function funcOrStackLevel, string fields = "flnSu>", function function )

Description

Returns debug information about a function.

Arguments

1 function funcOrStackLevel
Takes either a function or a number representing the stack level as an argument. Stack level 0 always corresponds to the debug.getinfo call, 1 would be the function calling debug.getinfo in most cases, and so on.

Returns useful information about that function in a table.

2 string fields = "flnSu>"
A string whose characters specify the information to be retrieved.
  • f - Populates the func field.
  • l - Populates the currentline field.
  • L - Populates the activelines field.
  • n - Populates the name and namewhat fields - only works if stack level is passed rather than function pointer.
  • S - Populates the location fields (lastlinedefined, linedefined, short_src, source and what).
  • u - Populates the argument and upvalue fields (isvararg, nparams, nups).
  • > - Causes this function to use the last argument to get the data from
3 function function
Function to use. (Only used by the > field)

Returns

1 table
A table as a DebugInfo structure containing information about the function you passed. Can return nil if the stack level didn't point to a valid stack frame.

Example

Let's find out information about net.Receive, such as which file it's defined in, the line it starts and the line it ends, and if it's defined in Lua, or C plus additional information.

PrintTable( debug.getinfo( net.Receive ) )
Output:
currentline = -1 func = function: 0x2430a158 isvararg = false lastlinedefined = 13 linedefined = 9 namewhat = nparams = 2 nups = 0 short_src = lua/includes/extensions/net.lua source = @lua/includes/extensions/net.lua what = Lua