RemDebug
Remote Debugger for the Lua programming language

Example of Execution

This is an example of a debugging session of the following script (test.lua):

 1    require"remdebug.engine"
 2
 3    remdebug.engine.start()
 4    
 5    local tab = {
 6      foo = 1,
 7      bar = 2
 8    }
 9
10    print("Start")
11
12    function bar()
13      print("In bar 1")
14      print("In bar 2")
15    end
16
17    for i = 1, 10 do
18      print("Loop")
19      bar()
20      tab.foo = tab.foo * 2
21    end
22
23    print("End")

First run the RemDebug controller:

% lua50 controller.lua
Lua Remote Debugger
Run the program you wish to debug

At this moment you can run your target program (in another window):

% lua50 test.lua

Now go back to the window where you ran controller.lua (this assumes you are running test.lua inside C:\development\kepler on a Windows system):

Paused at file C:/development/kepler/test.lua
Type 'help' for commands
> basedir C:/development/kepler/
New base directory is C:/development/kepler/
> basedir
C:/development/kepler/
> step
Paused at file C:/development/kepler/test.lua line 6
> over
Paused at file C:/development/kepler/test.lua line 7
> over
Paused at file C:/development/kepler/test.lua line 10
> over
Paused at file C:/development/kepler/test.lua line 15
> setb test.lua 19
> run

You can change to the application window anytime to see its output. Back to the debugger session:

Paused at file C:/development/kepler/test.lua line 19
> run
Paused at file C:/development/kepler/test.lua line 19
> eval tab.foo
2
> eval tab.bar
2
> exec old_tab = tab
nil
> exec tab = 2
nil
> eval tab
2
> exec tab = old_tab
nil
> eval tab.foo
2
> run
Paused at file C:/development/kepler/test.lua line 19
> eval tab.foo
4
> delb test.lua 19
> setw tab.foo == 32
Inserted watch exp no. 1
> run
Paused at file C:/development/kepler/test.lua line 17
  (watch expression 1: [tab.foo = 32])
> eval tab.foo
32
> delw 1
> run
Program finished

Valid XHTML 1.0!

$Id: example.html,v 1.8 2006/07/27 20:43:15 carregal Exp $