Lua Development Tools Debugger
The Debugger of Lua Development Tools is based on DBGP protocol.
The IDE contains a DBGP server. To connect to this one and begin remote/attach debugging, you need to get our DBGP lua client.
The DBGP Lua client is composed of two lua files (debugger.lua and debugintrospection.lua).
It runs on unix like OS and windows (XP and later). It is written in Lua 5.1 and was dependant of lua-socket.
You could get lua on http://www.lua.org/download.html and install lua-socket thanks to luarocks or via your official OS repositories.
To use it, you must have this two files in your lua path.
To begin the connection, you must execute this lua code :
> local initconnection = require("debugger") > initconnection(host, port, idekey)
> require("debugger")(host, port, idekey)
- host: the host name or the ip address of the DBGP server (so of your ide).
- if host is nil, the DBGP_IDEHOST env var is used.
- if the env var is nil, the default value '127.0.0.1' is used.
- port: the port of the DBGP server (must be configured in the IDE).
- if port is nil, the DBGP_IDEPORT env var is used.
- if the env var is nil, the default value '10000' is used.
- idekey: a string which is used as session key (must be configured in the IDE).
- if IDEKEY is nil, the DBGP_IDEKEY env var is used.
- if the env var is nil, the default value 'luaidekey' is used.
So, To debug your application you could do :
lua -e "require('debugger')("idehost","ideport");" MyApp.lua
The DBGP Server is integrated in LDT.
To allow it to accept debug session, you must create a new Remote Lua Application launch configuration, then launch it.
Go in Run/Debug Configurations....
- Project : Set the ldt project in your workspace which include the lua source file of the application you want to debug.
- IdeKey : Default value is luaidekey, if you need to debug more than one application at the same time, you should change it to associate a launchconfiguration to only one application to debug.
- Remote Source Mapping : use to make the mapping between the source file used at runtime and the source file in your ide workspace.
For exemple if your run your application like this :
$cd /my/runtime/path $lua -e "require('debugger')();" MyApp.lua
You should define
/my/runtime/path as working directory. (On Windows : you should use this notation
Now you can launch it by clicking Debug. IDE will wait for debugger client connection on the port you could see in the debug view.
You could change the server port, in Window > Preferences > Dynamic Languages > Debug.