Lisp hata ayıklayıcısının çıktısını nasıl yorumlayacağınızı ve kullanacağınızı anlamaya çalışıyorum.Lisp hata ayıklayıcıyı kullanma yardımı
İşlevimin değerlendirilmesi için oldukça basit bir Backtrace'im var, ancak işlevimin dışında özel Lisp formunun hangi özel durumun oluştuğunu bulmak için nasıl kullanacağımı anlayamıyorum.
Kodumda nerede hata bulunduğunu bulmak için ne yapmam gerektiğine dair ipuçları isterim.
Ayrıca - ikinci çerçeve neden "çerçeve için kullanılabilir hata ayıklama bilgisi" olarak gösteriliyor?
Hata ayıklayıcısını kullanarak bir ekran görüntüsü ekledim ve repl (Ayrıca, aşağıda işlevimi de ekledim - Çok yanlış olduğunu biliyorum - ancak hata ayıklayıcısını doğru şekilde kullanmayı öğrenmek istiyorum). Ek olarak, kaynağa gitmek için ilk karedeki 'v' tuşuna basıyorum, ancak bu, repl'in altındaki hatanın sonucunu verdi.
- (DÜZENLEME eksik kaynak kodu sorunu doğru yola kopyalayarak & indirerek sabittir) (korkunç fonksiyonu -! Bir yorum lütfen)
(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 hata ayıklayıcısı" bulunmadığından bahsedilmelidir. Lisp, geniş bir dil ve uygulama ailesidir. Çoğu uygulamanın farklı hata ayıklayıcıları vardır. Emacs için SLIME benzeri bir IDE, desteklenen Lisp'lerin üzerinde çalışan bir hata ayıklayıcı arabirim ekler. –
En iyi hata ayıklama bilgileri için optimize bayraklarınızı ayarladınız mı? Herşeyi derlemeden önce bunu değiştirmeyi deneyin: (declaim (en iyileştirme (hız 0) (güvenlik 3) (hata ayıklama 3) (boyut 0))) – Beef
@Beef - evet, bunu zaten denedim. – Joel