[slime-devel] Debugging variables

dherring at tentpost.com dherring at tentpost.com
Tue Apr 27 15:07:02 UTC 2010


Zadirion Fay wrote:
> (defun sample-function (x y)
>     (if (> (+ x y) 15)
>         (+ x y)
>         (error "The sum of x and y must be greater than 15")))
>
> (sample-function 3 4)
>
>
> Given the above code, I can not seem to be able to display the value of x
> or y for that matter once the debugger kicks in on the line with the error.

I'd guess the compiler has optimized out that information.  Try either

(defun sample-function (x y)
  (declare (optimize (debug 3)))
    (if (> (+ x y) 15)
        (+ x y)
        (error "The sum of x and y must be greater than 15")))

or
(declaim (optimize (debug 3)))
(defun sample-function (x y)
    (if (> (+ x y) 15)
        (+ x y)
        (error "The sum of x and y must be greater than 15")))

The declaration only enables debugging for sample-function; the
declamation affects everything following it.

- Daniel

> Once inside the debugger, I tried pressing 'i' for inspect and entered x.
> Debugger replied with "unbound variable x blabla". Pressed 'e' for eval
> and
> wrote (sb-debug:var x) with
> same result (using sbcl here).
>
> Here is exactly what the debugger posts:
>
> The sum of x and y must be greater than 15
>    [Condition of type SIMPLE-ERROR]
>
> Restarts:
>  0: [ABORT] Abort compilation.
>  1: [ABORT] Return to SLIME's top level.
>  2: [CLOSE-CONNECTION] Close SLIME connection
>  3: [ABORT] Exit debugger, returning to top level.
>
> Backtrace:
>   0: (SAMPLE-FUNCTION 3 4)
>   1: (SB-FASL::LOAD-FASL-GROUP #<SB-SYS:FD-STREAM for "file
> C:\\Users\\Eddie\\AppData\\Local\\Temp\\16.fasl" {24165B59}>)
>   2: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
>   3: (SB-FASL::LOAD-AS-FASL #<SB-SYS:FD-STREAM for "file
> C:\\Users\\Eddie\\AppData\\Local\\Temp\\16.fasl" {24165B59}> NIL
> #<unavailable argument>)
>   4: ((FLET SB-FASL::LOAD-STREAM) #<SB-SYS:FD-STREAM for "file
> C:\\Users\\Eddie\\AppData\\Local\\Temp\\16.fasl" {24165B59}> T)
>   5: (LOAD #P"C:\\Users\\Eddie\\AppData\\Local\\Temp\\16.fasl")[:EXTERNAL]
>   6: ((FLET SWANK-BACKEND:SWANK-COMPILE-STRING) "(sample-function 3 4)"
> :BUFFER "new.lisp" :POSITION 133 :FILENAME NIL :POLICY NIL)
>   7: ((LAMBDA ()))
>   8: ((LAMBDA ()))
>  --more--
>
>
> Can anyone please help? I am getting really depressed here :(
>
> Thanks,
>
> Eddie
> _______________________________________________
> slime-devel site list
> slime-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/slime-devel






More information about the slime-devel mailing list