This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-07-04
Channels
- # beginners (8)
- # boot (20)
- # cider (8)
- # cljs-dev (263)
- # cljsjs (8)
- # cljsrn (20)
- # clojure (151)
- # clojure-argentina (1)
- # clojure-belgium (7)
- # clojure-dev (18)
- # clojure-italy (25)
- # clojure-spec (34)
- # clojure-uk (15)
- # clojurescript (89)
- # component (45)
- # core-async (27)
- # cursive (16)
- # datomic (53)
- # emacs (40)
- # figwheel (3)
- # hoplon (62)
- # jobs (1)
- # jobs-discuss (7)
- # luminus (8)
- # lumo (60)
- # off-topic (3)
- # parinfer (1)
- # precept (1)
- # protorepl (15)
- # re-frame (37)
- # reagent (7)
- # ring (3)
- # ring-swagger (73)
- # slack-help (1)
- # specter (19)
- # sql (4)
- # test-check (10)
- # uncomplicate (2)
- # unrepl (14)
- # untangled (52)
- # vim (5)
- # yada (42)
@cgrand occasionally, very occasionally I use cider
, but not an actual JVM debugger
the answer: the stubs invoke which delegate to invokeStatic don’t have this information...
I've tried visualvm in the past for profiling, but couldn't ever get it to work properly (with boot)
well I don't really know what cider does there but I really rarely use debuggers
@richiardiandrea I think that cider don’t use a “true” (jvm) debugger. Can you step in java code? (eg in Clojure hash maps)
@pesterhazy visualvm works but most defaults are off (haven’t tried with boot though)
Yeah you might be right, I actually never debugged java code with cider
Not an unrepl yet (but it’s a standard “sub” repl, so upgradable):
Clojure 1.8.0
user=> (require '[net.cgrand.poucet :refer [trace break]])nil
user=> (defn fact ([n] (fact n 1)) ([n p] (if (pos? n) (fact (dec n) (* n p)) p)))
#'user/fact
user=> (break fact)
#object[com.sun.tools.jdi.EventRequestManagerImpl$MethodEntryRequestImpl 0x6edc4161 "method entry request (enabled)"]
user=> (fact 4)
arguments n: 4
"user$fact" "invoke" "<no source>" => :cont
arguments n: 4, p: 1
"user$fact" "invoke" "<no source>" => :cont
arguments n: 3, p: 4
"user$fact" "invoke" "<no source>" => :cont
arguments n: 2, p: 12
"user$fact" "invoke" "<no source>" => :cont
arguments n: 1, p: 24
"user$fact" "invoke" "<no source>" => :cont
arguments n: 0, p: 24
"user$fact" "invoke" "<no source>" => :cont
24
user=>
cool!