Zadirion Fay zadirion@gmail.com writes:
Hello,
I am new to slime and Lisp in general. I did try searching google before posting this but I can not seem to find any answer to this, so here goes:
(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. 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--
You need to press return on the desired frame, 0: (SAMPLE-FUNCTION 3 4), in that case. With `e', you have to enter only `x'. And to get generally better debugging information, you may compile your function with higher debugging settings, C-u C-c C-c does that autamtically on SBCL (C-u C-c C-k works also).