2016-03-29 50 views
0

Emacs lisp'de bir işlevi izlemeye çalışıyorum. trace-function ve arkadaşlarımı kullanmaya çalışıyorum, ancak hiçbir iz üretilmiyor. *trace-output* arabelleği oluşturulur, ancak hiçbir şey yazılmaz. İşte elisp `trace-function` izleme üretmiyor

sorunun minimal örnektir:

(progn 
    (require 'trace) 
    (untrace-all) 
    (defun f() 'hello) 
    ;(trace-function 'f) 
    ;(trace-function-background 'f) 
    (trace-function-foreground 'f) 
    (f)) 

*scratch* getiriler 'hello içinden bu yürütme, ancak bilgiler *trace-output* veya *scratch* ya yazılır izleyememişlerdir. Yukarıdaki üç izleme işlevinin her biri ile başarılı olmadan denedim.

Yanlış bir şey yapıyorum? Üretilecek iz bilgilerini nasıl alabilirim?

+0

Testiniz I ('Emacs'ta-24.4 -Q' olarak) bunu denemek çalışır, bu nedenle eksik bazı bilgi var gibi görünüyor. – Stefan

+0

@Stefan 25 yaşındayım ama sadece emacs -Q ile test ettim ve işe yaradı, bu yüzden asıl soru paketin veya ayarın 'function-trace' ile etkileşime girdiği biliniyor :( –

+0

Fwiw Birkaç paketim var ama yoğun özelleştirme yapmıyorum, özellikle sadece özelleştirme seçeneklerini kullanıyorum. –

cevap

0

Paket trace.el, başlangıçta sıfır olan inhibit-trace genel değişkenini tanımlar. Ancak hata ayıklayıcısını, hata ayıklayıcısını açıkça bırakılana kadar yürürlükte olan 't, için inhibit-trace olarak ayarlayın. *Backtrace* arabelleğini kapatmak, hata ayıklayıcıdan çıkmıyor.

Sorunum, hata ayıklayıcısına daha önce sesionuma girdiğim ve açık bir şekilde bırakmadığım oldu.

olur hak Bu davranış daha iyi bilinmek :)