Debugging clojure/ritz/nrepl:如何获取:线程id以发送一个";“帧源”;在nrepl上的里兹酒店?

Debugging clojure/ritz/nrepl:如何获取:线程id以发送一个";“帧源”;在nrepl上的里兹酒店?,debugging,clojure,nrepl,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)})) (其中一些是基于) 这非常有效,我从

我正在线程中启动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)}))
(其中一些是基于)

这非常有效,我从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上下文,我看到映射中有表示线程id的键,应该由我传入的:thread id查找,但是我如何事先知道:thread id呢


谢谢你的指导

没有发布答案,因为我没有完整的解决方案,但我认为这里的关键是使用ritz.jdpa.debug/threads或ritz.jdpa.debug/thread-list来获取线程信息(iirc这不仅可以获取线程id,还可以获取线程的状态,您可以使用这两种方法的组合来确定操作哪个线程)