(defun foo()
(send-to-debug-log "Error. Function terminated." (get-current-function-name)))
Я в настоящее время сделать это:Есть ли способ получить имя функции текущей функции?
(defun foo()
(send-to-debug-log "Error. Function terminated." 'foo)))
Hard кодирования имя функции, кажется, не является хорошей практикой. Любые предложения по внедрению get-current-function-name
или get-function-name-that-call-me
.
Вы можете попробовать играть в режиме backtrace-frame, но я думаю, что лучшим решением было бы заменить '(get-current-function-name) на имя функции во время макрорасширения (т. во время компиляции). Он не только был бы более эффективным, но также обрабатывал бы такие случаи, как лямбда-функции, используемые в качестве обратных вызовов (где функция englobing может вообще отсутствовать в backtrace). Поэтому я настоятельно рекомендую вам «M-x report-emas-bug» и запросить это как функцию. – Stefan
Что сказал @Stefan. (Но опечатка: 'report-emacs-bug'.) – Drew