Debug
This dialog is invoked by calling debug.debug () from within a Lua script.

You can use it to inspect variables, do a traceback, enter debugging commands, or abort the script.

Source

The short form of the source of this script. If loaded from a file it will be the filename preceded by the "@" symbol.

First, last lines

If known, the first and last line numbers in which the current function was defined.

Current line

The line number inside the script at which the debug.debug () command resides.

What function is

This will be one of:


  • Lua - a regular Lua function
  • main - inside the main Lua chunk (that is, not inside a function)
  • C - a C function


Name

If it can be determined, the name of the current function, followed by what the name is in brackets. (eg. "myfunction (local)" ).

Function

The function address.

Number of upvalues

How many upvalues this function has.

Show upvalues

Clicking this runs a small script to display the upvalues of the current function, if any, in the output window. The script looks like this:


do 
local i, name, val = 1 
local t = debug.getinfo (3, 'f') 
local f = t.func 
-- keep going until we run out of values
repeat 
  name, val = debug.getupvalue (f, i) 
  if name then  
    ColourNote ('limegreen', 'black', name .. ' = ' .. tostring (val))  
    i = i + 1  
  end 
until not name	
ColourNote ('limegreen', 'black', tostring (i - 1) .. ' upvalue(s)') 
end -- of local block



Show locals

Clicking this runs a small script to display the local variables of the current function, if any, in the output window. The script looks like this:


do local i, name, val = 1 
repeat 
 name, val = debug.getlocal (3, i) 
  if name then  
    ColourNote ('limegreen', 'black', name .. ' = ' .. tostring (val))  
    i = i + 1  
  end 
until not name	 
ColourNote ('limegreen', 'black', tostring (i - 1) .. ' local(s)') 
end -- local block



Traceback

Clicking this runs a small script do display the traceback information, namely:


ColourNote ('limegreen', 'black', debug.traceback ())


Command

You can type Lua commands into this window and press <Enter> (or click on Do Command). The command you entered is sent to the Lua interpreter to be executed in the context of the current script. For example, you could print or change global variables. The current command is remembered from one debug session to the next.

Edit...

Click this to edit the current contents of the command window in a larger dialog box. This larger box has access to function help, and function-name completion.

Do command

Sends the contents of the "command" box to the Lua interpreter.

Continue execution

Lets the script that called debug.debug () continue executing. Pressing <Esc> to dismiss the dialog has the same effect.

Abort script

Aborts the calling script with the error "Script aborted".


See Also ...

Topics

DOC_Arrays Arrays
DOC_lua_base Lua base functions
DOC_lua_bc Lua bc (big number) functions
DOC_lua_bit Lua bit manipulation functions
DOC_lua_coroutines Lua coroutine functions
DOC_lua_debug Lua debug functions
DOC_lua_io Lua io functions
DOC_lua_math Lua math functions
DOC_lua_os Lua os functions
DOC_lua_package Lua package functions
DOC_lua_rex Lua PCRE regular expression functions
DOC_lua Lua script extensions
DOC_lua_string Lua string functions
DOC_lua_tables Lua table functions
DOC_lua_utils Lua utilities
DOC_plugins Plugins
DOC_scripting Scripting
DOC_mxp_callbacks Scripting callbacks - MXP
DOC_plugin_callbacks Scripting callbacks - plugins
DOC_data_types Scripting data types
DOC_function_list Scripting functions list
DOC_errors Scripting return codes
DOC_utils Utilities
DOC_variables Variables
DOC_world World functions

Dialog

DLG_IDD_PREFS_P17 Scripts

(Help topic: dialog=IDD_LUA_DEBUG)

DOC_contents Documentation contents page