Değerlendirmeyi yarıda kes ve emacs-lisp hata ayıklayıcısındaki mevcut yığını gözlemle?


17

Büyük bir mod kancası gibi bazı emacs-lisp işlevinin yürütülmesi beklenenden daha uzun sürüyorsa, bazen onu kesmek ve mevcut yığınlara bakmak istiyorum. İdeal olarak, hata ayıklayıcıda değişken değerlere ve benzerlerine bakabilmek istiyorum. Kasten emacs-lisp modunda yürüttüğüm kod hakkında değil, emacs normal işleminde çalıştırılan kod hakkında konuşmuyorum.

Emacs-lisp kodunun doğrudan emacs içinde yürütülmesini nasıl durdurabilirim? Hangi işlevi hata ayıklamak için ön bilmiyorum.

Örneğin, yazmak C-g, yürütmeyi kesintiye uğratırken, bana hangi işlevin kesintiye uğradığı hakkında hiçbir şey söylemez.

Yanıtlar:


18

Sen yapabilir C-gaçarak ayıklayıcısını tetiklemek debug-on-quit. Sadece yap

M-x toggle-debug-on-quit

Şimdi her vurduğunuzda C-gneler olup bittiğine dair bir geri izleme alacaksınız. Bu geri izleme etkileşimlidir, bu nedenle ile fonksiyonda adım adım ilerlemeye devam edebilirsiniz dve ile hareket etmeye başlayabilirsiniz c. (Bir deneyin, görmek okumaktan daha kolaydır).

Bu, (debug)kodunuzun içine ekleyerek aldığınız geri izdir . İşte kısa bir blog yazısı ve ilgili Elisp kılavuz sayfası .


(meekly diyor hello);) Hata ayıklayıcı etkileşimli harika not - Bunu kontrol etmeyi hiç düşünmemiştim :)
Sean Allred

@SeanAllred evet, sadece birkaç hafta önce öğrendim.
Malabarba
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.