----- Original Message -----
From: John M. Adams <stsci.edu at jmadams>
To: <cs.berkeley.edu at allegro-cl>
Sent: Wednesday, November 10, 1999 11:16 AM
Subject: stepping through clos methods and other debugging questions
> Being new to acl and lisp in general, I'd be interested in your
> descriptions of development and debug work patterns. I'm coming from
> 9 years of C/C++. When I think debugger, I think gdb. In my initial
> look at the acl environment, I'm seeing something I would describe as
> relatively primitive. Mind you, I may simply be lacking the
> appropriate, informed perspective.
John,
Coming from a similar background, I also had an initial perception that
Lisp's debugger was relatively primitive. I do miss the capability of
stepping through my source code interactively -- but as I've
"acclimated" to Lisp development I've learned to use the REPL, trace,
advice, and other features that don't exist in the commodity C++
development environments.
I tried Marc's package. It does work, but not quite out-of-the-box with
the current ACL versions. I fixed a few of the obvious incompatibilities
but eventually decided to try going back and learning more of the tools
provided by the ACL environment.
Marc's package provides stepping by instrumenting your Lisp code to
interact with a GUI control panel. As debugging tools go, it's way too
intrusive for routine use IMO. YMMV, of course.
> Any general wisdom about debugging in the acl environment would be
> welcome. I've read the debugging.html.
I personally find that a "bottom-up" debugging approach works very well
for most cases in Lisp. Rather than debugging the program as a whole, I
interactively test individual functions using the REPL. Then I test the
functions that call those functions, and so on, until eventually I'm
running the full system -- but it's already well debugged.
This is not to say that Lisp couldn't benefit from a gdb-like source
stepping capability -- I certainly think it could. But now that I've
experienced the benefits of the bottom-up approach that Lisp makes
possible, I consider C++'s debugging toolset the impoverished one. :-)
-- Kaelin