Debugging with 1.3 and CDT

22 views
Skip to first unread message

Daniel Renfer

unread,
Jan 30, 2011, 11:12:16 AM1/30/11
to clo...@googlegroups.com
I'm trying to set up debugging for my application using the Clojure Debugging Toolkit. I'm fairly certain I have everything set up properly, but I can't seem to get it to "reval" appropriately.

I am using the Clojure maven plugin to launch a swank server. (with the debugging args from George's site) I am using Clojure 1.3, which I think may be part of my problem. I am able to set breakpoints, step in, step out, continue, etc. As soon as I try to do any reval-ing, I get an exception. (this includes trying to print locals)

The stacktrace of the exception is:

com.sun.jdi.InvocationException: Exception occurred in target VM (NO_SOURCE_FILE:0)
    at clojure.lang.Compiler.eval(Compiler.java:5440)
    at clojure.lang.Compiler.eval(Compiler.java:5391)
    at clojure.core$eval.invoke(core.clj:2382)
    at clojure.main$repl$read_eval_print__5624.invoke(main.clj:183)
    at clojure.main$repl$fn__5629.invoke(main.clj:204)
    at clojure.main$repl.doInvoke(main.clj:204)
    at clojure.lang.RestFn.invoke(RestFn.java:422)
    at clojure.main$repl_opt.invoke(main.clj:262)
    at clojure.main$main.doInvoke(main.clj:354)
    at clojure.lang.RestFn.invoke(RestFn.java:409)
    at clojure.lang.Var.invoke(Var.java:365)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:482)
    at clojure.main.main(main.java:37)
Caused by: com.sun.jdi.InvocationException: Exception occurred in target VM
    at com.sun.tools.jdi.ClassTypeImpl.invokeMethod(ClassTypeImpl.java:246)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:90)
    at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)
    at com.georgejahad.cdt$remote_invoke.invoke(cdt.clj:562)
    at clojure.lang.AFn.applyToHelper(AFn.java:174)
    at clojure.lang.AFn.applyTo(AFn.java:151)
    at clojure.core$apply.invoke(core.clj:544)
    at clojure.core$partial$fn__3680.doInvoke(core.clj:2011)
    at clojure.lang.RestFn.invoke(RestFn.java:422)
    at com.georgejahad.cdt$add_local_to_map.invoke(cdt.clj:653)
    at clojure.core$r.invoke(core.clj:799)
    at com.georgejahad.cdt$add_locals_to_map.invoke(cdt.clj:673)
    at com.georgejahad.cdt$gen_form_with_locals.invoke(cdt.clj:686)
    at com.georgejahad.cdt$reval_ret_STAR_.invoke(cdt.clj:714)
    at clojure.lang.AFn.applyToHelper(AFn.java:169)
    at clojure.lang.AFn.applyTo(AFn.java:151)
    at clojure.core$apply.invoke(core.clj:542)
    at clojure.core$partial$fn__3678.doInvoke(core.clj:2009)
    at clojure.lang.RestFn.invoke(RestFn.java:422)
    at com.georgejahad.cdt$safe_reval.invoke(cdt.clj:764)
    at user$eval800.invoke(NO_SOURCE_FILE:8)
    at clojure.lang.Compiler.eval(Compiler.java:5424)
    ... 13 more


I'm AOT compiling my classes, if that makes a difference. Does anyone know what might be going on? If I were upgrade CDT and the debug-repl to 1.3, would that help? Also, I'm sure I don't have all my source paths set up properly in emacs, but I don't think that's the problem in this case. (Ubuntu 10.10, OpenJDK Runtime Environment (IcedTea6 1.9.4))

George Jahad

unread,
Jan 30, 2011, 2:25:02 PM1/30/11
to Clojure
Hey Daniel:

I'm embarrassed to say I've never tried it before on 1.3. You've
found a real bug. I'll try to get a proper patch out later today, but
if you're in a hurry, you might try changing this line in cdt.clj:

(def ge (memoize #(first (find-methods (va) #"get"))))

to this:

(def ge (memoize #(first (find-methods (va) #"get$"))))

Let me know how it goes.

Thanks for "going were no man has gone before!"

g

Daniel Renfer

unread,
Jan 30, 2011, 4:06:52 PM1/30/11
to clo...@googlegroups.com
That did the trick.

The keys on my keyboard that spell out "println" thank you.

> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@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+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

Reply all
Reply to author
Forward
0 new messages