Emacs Lisp kodunda bir hata belirtilirse ve debug-on-error
ise t
, hatanın nerede oluştuğunu anlamayı kolaylaştıran bir geri izleme arabelleği alırım. Ancak, ağdan bir yanıt zaman uyumsuz olarak işlenirken oluşan hatalar için, geri izleme arabelleğinin açılmasını rahatsız edici olacaktır, bu yüzden hatayı yakalamak condition-case
ve günlüğe kaydetmeyi tercih ederim .
Yani bir hatayı işlerken, hata condition-case
noktasındaki geri izlemeye erişmenin bir yolu var mı? backtrace
İşlevi çağırmak, işleyicinin içindeki kodun geri izlemesini alır, bu aradığım şey değil.
(condition-case e
(do-something-that-might-fail)
(error
(message "%s"
;; This gets the wrong backtrace!
(with-temp-buffer
(let ((standard-output (current-buffer)))
(backtrace)
(buffer-string))))))
do-something-that-might-fail
yığın izi oluşturup ortaya çıkardığı hataya eklersiniz.
magithub-error
işlevi bence buna benzer bir şey yok, ama şu anda bir bilgisayar başında değilim. Ne olursa olsun yardımcı olabilir.