From: Kaelin Colclasure

Subject: Re: stepping through clos methods and other debugging questions

Date: 1999-11-10 15:23

----- 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.
> Do any of you use Marc Merten's lisp debug package? It seems to > provide a general facility that includes stepping ( > http://sunsite.unc.edu/pub/Linux/devel/lang/lisp/lispdebug-0.9.1.tgz). > I'm going to test that shortly, but was wondering if there were a > similar acl native facility.
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