2011-11-25 42 views

回答

22
  1. C-H˚F函數名找到該函數的源代碼。
  2. C-uC-M-x來測試Edebug的功能。

無論什麼時候調用該函數,Emacs都會放入Edebug中,這樣可以輕鬆地逐步執行函數,檢查變量並執行其他典型的調試任務。有關更多信息,請參閱(info "(Elisp)Edebug")

+2

一些平臺,如侏儒3,不要讓Emacs接收'CMx'。所以用edebug來測試函數,使用'C-u M-x eval-defun'。 –

0

C-h f要轉到功能幫助模式,然後鍵入功能的名稱。如果它是一個elisp函數,則可以查看源代碼並查找它調用的函數。

9

我更喜歡傳統的Emacs調試器來edebug。要使用它:

M-x debug-on-entry the-function RET 

然後,無論何時調用the-function,都會輸入調試器。如果你想通過一個臺階(未潛入其詳細信息跳過使用d步驟通過評測,並Ç

它有助於在新窗口/幀的the-function的定義,而你通過步它。

0

如果你想以編程的方式看到一個函數的源代碼(類似於Clojure的source宏)你可以使用symbol-function子程序。

例如,有我在.emacs文件中的defun定義do-math。看到它的來源,我可以做以下

(symbol-function 'do-math)

,這讓我

ELISP> (symbol-function 'do-math) 
(lambda 
    (expression) 
    (interactive "sexpression:") 
    (insert 
    (number-to-string 
    (eval 
    (read expression))))) 

參見: https://www.gnu.org/software/emacs/manual/html_node/elisp/Function-Indirection.html

參見也: http://ergoemacs.org/emacs/elisp_symbol.html