LISPDEBUG

Introduction

Although LISP is easy to debug and has some nice debugging tools (trace, step ...) there exist still a niche for a source level debugger. Most commercial implementations of LISP have indeed a source level debugger but in most free versions of LISP such a debugger is missing.. For this raison I started to develop myself a source level debugger and the result of this effort is LISP DEBUG.
LISP DEBUG is a client server system, when you start a debugging session in LISP a server program ('interface') is started, which provides a GUI to the debugger. Your debugged program is then communicating with this server to display debugging info (sources , highlighting breakpoints ....) and is controlled by itself by the server program. The server is written in C and uses TCL/TK for the GUI part (I would like to write the GUI also in LISP but it is a sad fact that there is no common high level graphical standard for the different LISP systems). Server and the LISP system communicates via sockets.
LISP DEBUG works by instrumentation, debugging code is added to each LISP form in a source. The debugging code will call the debugger before evaluating the form.. The debugging code passes position info and lexical environment info to the debugger. Breakpoints, watch points and evaluation of expressions uses this extra information. The extra code is added by parsing the lisp source and generating a temp file containing the debugged code, this file is then loaded in the LISP system.

LISP macro's are a known problem for instrumentation of code, a LISP programmer can use macro's to define his own control structures and it is then not clear which part must be debugged and which part not. It is for this raison that the parser/generator of LISP DEBUG is extensible. The parser/generator is actually LISP code resulting from compiling a extension language. This extension language is loosely based on the syntax diagrams found in CLTL2 and should be easy to modify.

Features

Supported Platforms

Screen shots

User manual

Download

Other debuggers

Contact

If you have problems, suggestions concerning my debugger or if you want to port it to another platform, feel free to contact me at mmertens@akam.be