[hunchentoot-devel] Backtrace display

Andreas Fuchs asf at boinkor.net
Thu Sep 3 07:00:07 UTC 2009


On Thu, Sep 3, 2009 at 08:45, Hans Hübner<hans.huebner at gmail.com> wrote:
> We have removed the backtrace support from Hunchentoot because we
> wanted to get rid of all non-essential system dependencies.  For
> interactive debugging, the *BREAK-ON-SIGNALS* special variable can
> (should) be used, it can do what the presented acceptor subclass can
> do.  If you really need backtraces in your log files, the
> trivial-backtrace [2] library may be useful.

IME, *break-on-signals* didn't work too well when I was debugging my
hunchentoot application. (I don't remember exactly what the problem
was, sorry.)
However, with just two definitions (posted in April[1]), HT gets much
more debuggable in interactive use:

(defclass debuggable-acceptor (hunchentoot:acceptor)
     ())

(defmethod acceptor-request-dispatcher ((*acceptor* debuggable-acceptor))
  (let ((dispatcher (call-next-method)))
    (lambda (request)
      (handler-bind ((error #'invoke-debugger))
        (funcall dispatcher request)))))

Then, you use the hunchentoot web service with (make-instance
'debuggable-acceptor :port 4242), and you'll get a (swank) debugger
every time an error condition slips through.

Hope that helps.

[1] http://common-lisp.net/pipermail/tbnl-devel/2009-April/004688.html
-- 
Andreas Fuchs, (http://|im:asf@|mailto:asf@)boinkor.net, antifuchs




More information about the Tbnl-devel mailing list