I've been looking for a simple and convenient to use clojure debugger for ages now and would love to hear your recommendations. I'm a vim-fireplace user as well, if that makes a difference.
I'd love to be able to set breakpoints in a running clojure application, step through the code and inspect locals and the referencing environment. Anything that gets me off of the time-consuming process of adding timbre/clojure.tools.trace statements would be really welcome. Is vim-redl the closest I can get to that, or is ritz the way to go? Any other recommendations? I'll have to checkout JoC2's chapter on that, that sounds really helpful. On Fri, Jan 24, 2014 at 4:11 PM, dgrnbrg <dsg123456...@gmail.com> wrote: > I have an implementation of this that's thoroughly integrated into vim. > > clojure code: https://github.com/dgrnbrg/redl > vim plugin: https://github.com/dgrnbrg/vim-redl > > The code itself is written with core.async, and is capable of monitoring a > thread, inspecting its stack while its running, stopping it, and > programmatically creating breakpoints that give you a repl with captured > locals. > > I'd love for this work to be extended to a generic nrepl handler, but I > don't have the time to do so at the moment. > > > On Friday, January 24, 2014 6:46:23 PM UTC-5, Jarrod Swart wrote: >> >> The second version of The Joy of Clojure talks about building a debugging >> repl that allows insertion of breakpoints into code. Perhaps something >> similar could be done here. >> >> On Friday, January 24, 2014 4:38:59 PM UTC-5, t x wrote: >>> >>> Found it, apparently it's >>> >>> debug-repl => swank-clojure => CDT => ritz >>> >>> It appears cider does not yet support this, so ritz is probably the >>> "most powerful" at the moment. >>> >>> >>> On Fri, Jan 24, 2014 at 3:39 AM, t x <txre...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> One thing I miss from pre-Clojure scheme days is as follows: >>>> >>>> ## What I want >>>> >>>> 1 => (foo) ;; I'm calling foo at the repl >>>> ... foo executes ... >>>> ... at some point, an exception is thrown ... >>>> >>>> 2 => my interpreter _starts a new repl_ >>>> * at the point where the exception was thrown >>>> * lets me examine local environment variables >>>> * lets me execute commands >>>> * lets me "resume" the execution >>>> >>>> >>>> ## Why "it can't work" >>>> >>>> Now, I understand why this can not work in general in Clojure, i.e. the >>>> following example: >>>> >>>> (defn foo [] >>>> (.someJavaFunctionThatThrowsException object)) >>>> >>>> In this case, the above is impossible since the exception is thrown >>>> from _java land_ rather than Clojure land. >>>> >>>> >>>> ## Why it might work >>>> >>>> Now, I'm not writing any code in java. The work I'm doing is pure >>>> clojure. I can throw when the exception is thrown. >>>> >>>> >>>> Is there some library, where instead of doing >>>> >>>> (defn foo [] >>>> ... >>>> (throw (ex-data ...)) >>>> ...) >>>> >>>> I instead do: >>>> >>>> (defn foo [] >>>> ... >>>> (something-went-wrong-please-fire-up-a-repl) >>>> ...) >>>> >>>> ? >>>> >>>> Thanks! >>>> >>> >>> -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > -- Alexandr Kurilin 206.687.8740 | @alex_kurilin <https://twitter.com/alex_kurilin> | blog<http://www.kurilin.net> -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.