2010-07-15 28 views
8

During web searching, aşağıdaki yorumu buldum: Geleneksel Lisp hata ayıklama uygulamaları yine de kullanılabilir.Lisp kod hata ayıklaması

  • Geleneksel hata ayıklama uygulamaları nelerdir?
  • Normal olarak, lisp'de (emacs ile/olmadan) hangi araçlar kullanılır?
+5

(örneğin, bir tamsayı ve bir sembol eklemek için çalışıyor) Bir “oyuncak dili” nün ne olduğunu bilir, ancak Lisp, ABD Ordusu tarafından çeşitli lojistik planlama sistemlerinde kullanılmıştır, çeşitli AI ve AI ile ilgili sistemlerde ve ITA Yazılımının arkasında, uzay kontrolüne (ve uzaktan hata ayıklanmış) dağıtılmıştır. ucuz uçuşlar için arama enginge, sadece $ 700M için google tarafından satın alındı. –

+0

SLIME, Emacs'te çalışan CL için bir __awesome__ geliştirme ortamıdır. CL için başka bir REPL kullanmam. – Jyaan

cevap

4

ancak IME:

Tipik Düzenleyicinizin ona bağlı çalışan bir örneğini olacaktır. İşlevleri derhal çalışan görüntüye eklemek için derleyebilirsiniz. Lisp kendi derleyicisine sahip olduğundan, yalnızca çalışan görüntülerin küçük bir metin bölümünü okumasını ve derlemesini söylüyorsunuz. Ya da ne yaptığını görmek için işlevleri doğrudan çalıştırabilirsiniz.

Bir istisna atıldığında (veya bir koşul bildirilirse, koşullarla bir lehte olmak için yeterince şanslıysanız), hata ayıklayıcı size yığın izlemeyi gösterecek ve nasıl devam edeceğinize karar vermenizi sağlayacaktır.

Lisp ile diğer yüksek düzeyde derlenmiş diller arasındaki en büyük fark, Lisp'te temel olarak her zaman kodun eklenmiş hata ayıklayıcısını yazmanızdır.

0

Temel olarak, yalnızca değerleri çalışırken yazdırmak için kod eklemek gibi şeyler olup bitenleri görebilirsiniz.

+0

Sesler lika a C# programmer .. (bu bir iltifat) – Flinkman

3

Yürürlükte bulunma emacs-defun ve lisp sihirli olduğunu göreceksiniz. Bill özellikle ne anlama geldiğini bilmiyorum

4

Soruda clojure etiketlendiği için bakış açımızı vereceğim.

clojure derleyici tarafından oluşturulan sınıf dosyaları satır ve yöntem tabanlı hata ayıklama bilgilerini içerir, böylece herhangi bir java hata ayıklayıcısı, kesme noktaları ve nesne denetimi de dahil olmak üzere doğrudan clojure koduyla birlikte çalışır.

Geliştirme ortamınız olarak emacs/slime kullanıyorsanız, son zamanlarda slime'ın hata ayıklayıcısına tümleştirme dahil edilmiştir. Dokümantasyon biraz seyrek olduğundan, github'daki desteğin kapsamını doğrudan kontrol etmek en iyisidir.

Ben çağırır şey ise
2

bir "Lisp hata ayıklama teknikleri geleneksel seti" yaklaşımlar şunlardır:

  • İşlev (a takip fonksiyonun her çağırma o karşılık bir girinti ile basılmış Izleme

    • ayıklama çıktılar derinliği çağırmak için, geri dönüşte değeri basılıdır). Bir hatadan kaynaklanıyor içinde görüntü ayıklayıcısında görüntü ayıklayıcısında biten
    • ait
    • Açık çağırma ben yok rlb.usa @
  • İlgili konular