[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: [Announce] Alpha release of a Lua debugger
- From: Rici Lake <lua@...>
- Date: Wed, 11 Apr 2007 14:30:42 -0500
In a spurt of energy over Easter, I wrote a simple console-based
debugger for Lua, which I hope will prove useful. I've set up a
CVSTrac (temporarily) at http://primero.ricilake.net:8008/ldb/index
Unfortunately, I haven't yet set up anonymous CVS access on that
server. However, the debugger (in it's basic form) is a single
Lua file which can be downloaded directly from:
http://primero.ricilake.net:8008/ldb/getfile?f=ldb/ldb.lua
As it says on the home page, I'm aware that the name 'ldb' has
already been used. If this is a problem, I'm happy to change the
name. Suggestions are welcome.
As always, I'd like to extend my thanks to the denizens of
irc://chat.freenode.net/#lua -- especially Slade, who wrote
and designed the initial version of lrcon, and who has
helped make sure that the code is Windows friendly, as
well as edrx, davidm123 and the others who have tried
early versions and provided bug reports, enhancement
suggestions, and general encouragement.
My main goals in creating this debugger were:
-- to simplify my life
-- to make it possible to do stack inspection while
debugging C modules
-- to allow easy configuration and customization
-- to produce something usable fast which will not occupy
my future life
I hope it helps others as well.
The design of the command-line interface was vaguely based on gdb and
is intended to minimize typing.
The debugger is still incomplete -- in particular, it has no
breakpoint support -- but I believe that that feature can be
added in another day's work, possibly this weekend. There are
almost certainly bugs as well, but I've found it usable (in
fact, I've been using it to debug Lua modules.)
Any feedback is more than welcome. Please use the ticket system
on CVSTrac rather than this mailing list for bug reports and
enhancement suggestions.
The CVS includes a few "goodies" in addition to the basic
ldb.lua file:
-- lrcon, the Lua Remote CONsole, which is a joint effort
to allow the debugger to be embedded in remote applications.
It is intended to be used with a telnet or MUD client,
and has been (lightly) tested on Windows, Mac OS X,
Linux (xubuntu) and FreeBSD (4.10 and 5.1). (I'm aware
of the existence of RemDebug; the point of lrcon was
to provide something a bit more self-contained and
lightweight.)
-- ldbglue.c, a very small Lua module which makes it easier
to use the debugger in conjunction with gdb, by creating
an ldb() function which can be called from gdb.
-- ldb-config-example.lua: a description of the debugger's
configuration system, which allows customization of
the input/output system (for use with lrcon) and the
'edit' command, which opens the current function in
an external editor. (I've only tested this with
gvim on xubuntu, but there are some example configurations
which may work or be made to work with other editors.)
-- lua511-apicheck.diff: A patch against Lua 5.1.1 (it
may work on 5.1.2, but I haven't tested it yet) which
appends a meaningful message to every use of api_check
in the Lua source, and allows the configuration of
something other than assert() to handle api_check errors.
In particular, you can use this to start up the debugger
when an api_check goes off: I've found this to be
particularly useful for debugging modules.