9
我想了解如何解釋輸出和使用Lisp調試器。幫助使用Lisp調試器
我已經有了一個非常簡單的Backtrace來評估我的函數,但我似乎無法找出如何使用它找出函數中的Lisp'form'發生了異常。
我很欣賞任何線索,我應該做什麼,找到在我的代碼錯誤發生的地方。
另外 - 爲什麼第二幀顯示爲「沒有可用於幀的調試信息」?
我已經附加了調試器和repl的屏幕截圖(我還包括我的功能在下面 - 我知道這是非常錯誤的 - 但我只是有興趣學習正確使用調試器)。另外,我在第一幀打'v'去源碼,但是這導致了repl以下的錯誤。
- (編輯缺失的源代碼的問題是通過下載&其複製到正確的路徑固定)(可怕的功能 - !沒有意見請)
(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)))
應該提到沒有'Lisp調試器'。 Lisp是一個龐大的語言和實現系列。大多數實現具有不同的調試器。像Emacs的SLIME這樣的IDE增加了一個運行在受支持的Lisp之上的調試器接口。 – 2011-01-10 13:38:19
您是否爲最大化調試信息設置了優化標誌?嘗試在編譯所有內容之前在repl中進行評估: (declaim(optimize(speed 0)(safety 3)(debug 3)(size 0))) – Beef 2011-01-10 15:55:44