Garry's Mod Wiki

Revision Difference

debug.getinfo#513387

<function name="getinfo" parent="debug" type="libraryfunc">⤶ <description>Returns debug information about a function.</description>⤶ <realm>Shared and Menu</realm>⤶ <args>⤶ <arg name="funcOrStackLevel" type="function">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, and so on.&#xA;&#xA;Returns useful information about that function in a table.</arg>⤶ <arg name="fields" type="string" default="flnSu">A string whose characters specify the information to be retrieved.&#xA;&#xA;* f - Populates the func field.&#xA;* l - Populates the currentline field.&#xA;* L - Populates the activelines field.&#xA;* n - Populates the name and namewhat fields - only works if stack level is passed rather than function pointer.&#xA;* S - Populates the location fields (lastlinedefined, linedefined, short_src, source and what).&#xA;* u - Populates the argument and upvalue fields (isvararg, nparams, nups)</arg>⤶ </args>⤶ <rets>⤶ <ret name="" type="table">A table as a <page>DebugInfo</page> containing information about the function you passed. Can return nil if the stack level didn't point to a valid stack frame.</ret>⤶ </rets>⤶ </function>⤶ ⤶ <example>⤶ <description>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.</description>⤶ <code>PrintTable( debug.getinfo( net.Receive ) )</code>⤶ <outputfixedwidth>Fixed width</outputfixedwidth>⤶ <output>⤶ [linedefined] = 7⤶ [currentline] = -1⤶ [func] = function: 0x1a8fae90⤶ [isvararg] = false⤶ [namewhat] =⤶ [lastlinedefined] = 11⤶ [source] = @lua/includes/modules/net.lua⤶ [nups] = 0⤶ [what] = Lua⤶ [nparams] = 2⤶ [short_src] = lua/includes/modules/net.lua⤶ </output>⤶ ⤶ </example>