KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying understand how to interpret the output of, and use, the Lisp debugger. I've got a pretty simple Backtrace for the evaluation of my function, but I cann't seem to work out how to use it to find out in which Lisp 'form' in my function the exception occurred. I'd appreciate any clues as to what I should be doing, to find where in my code the error originated. Also - why does the second frame display as "no debug information available for frame"? I've attached a screen shot with the debugger, and repl (I've also included my function below - I know it's very wrong - but I'm just interested in learning to use the debugger properly). In addition, I hit 'v' on the first frame to go to the source, but this resulted in the error below the repl. (EDIT - the missing source code issue is fixed by downloading & copying it to the correct path) (horrible function - no comments please!) (defun myquicksort2 (lst) (if (eql 1 (length lst)) lst (let ((mid (middle lst))) (do ((i 0 (+ i 1))) ((>= i mid) (append (myquicksort2 (subseq lst 0 mid)) (myquicksort2 (subseq lst mid (length lst))))) (if (> (ltval i lst) (nth 100 lst)) (let ((tmp (ltval i lst))) (setf (nth i lst) (gtval i lst)) (setf (nth (- (- (length lst) i) 1) lst) tmp))))))) (defun ltval (i lst) (nth i lst)) (defun gtval (i lst) (nth (- (- (length lst) i) 1) lst)) (defun middle (lst) (round (/ (length lst) 2)))
Tags (comma-separated)
Save Edits
Cancel