clojure / ritz / nrepl:如何获得:thread-id以便向rre over nrepl发送“frame-source”操作?

时间:2013-05-16 00:16:46

标签: debugging clojure nrepl

我在线程中启动ritz服务器并使用nrepl客户端以编程方式与其进行通信:

(require '[clojure.tools.nrepl :as repl])
(def connection (repl/connect :port 15351)) ;; port of ritz-nrepl
(-> (repl/client connection 1000)
    (repl/message {:op "eval" :code '(+ 3 3)}))

(其中一些基于http://hugoduncan.github.io/ritz-conj/#/5/2

这很好用,我收到ritz-nrepl服务器的回复。但如果我想用框架做一些事情:

(repl/message connection {:op "break-on-exception"})
(repl/message connection {:op "eval" :code '(/ 1 0)}) ;; empty response {} here
(repl/message connection {:op "frame-source" :frame-number 1})

这会引发异常,因为“frame-source”op需要:thread-id。但我怎么知道线程ID?我已经检查了break-context,我看到地图中有一些键表示应该由我传入的:thread-id查找的线程id,但我怎么知道:thread-id预先?

感谢任何指导!

0 个答案:

没有答案