2011-08-04 41 views

回答

8

您可以直接在REPL(由Mike邁耶在Clojure的郵件列表答案:Debugging in Clojure)做

=> (use 'clojure.contrib.trace) 
nil 
=> (defn foo [coll] (reduce + coll)) 
#'web-db.core/foo 
=> (defn bar [coll] (map inc coll)) 
#'web-db.core/bar 
=> (dotrace [foo bar] (foo (bar [1 1 1]))) 
TRACE t3868: (bar [1 1 1]) 
TRACE t3868: => (2 2 2) 
TRACE t3869: (foo (2 2 2)) 
TRACE t3869: => 6 
6 

還有Clojure的調試工具包 (「關於如何使用它冗長得可笑的指示在這裏: http://georgejahad.com/clojure/emacs-cdt.html「)

有些IDE(Eclipse等與逆時針插件)允許進行調試:設置斷點,看當地人,一步輸入/輸出,...

+0

與跟蹤庫中的問題爲t它不支持內置的運算符,比如'+'......我記得,它是更高級的示蹤器,但不記得它的名字 –