I hope everybody is having a good weekend (esp. after Thanksgiving in
the US).

Has anybody been successful using Emacs to create an environment where
you can set a break statement and, when it is hit, you have REPL
access to the program's current environment at the point of the break?
I've tried to get this in various ways, on both PCs and Macs, with
various flavors of Emacs, and no success. I have some modest skill at
reading/writing elisp and at reading the Emacs messages and compile-
log buffers, but not enough knowledge of the software to debug it. I
have used Aquamacs and the canonical versions of plain Emacs on both
the PC and Mac OS X side (and getting very similar results, so I don't
think it's a platform issue). I have started with clean installs and,
where possible, have weeded out old files. I am using Leiningen to
start up a Swank server from a command line. On the PC side, I tried
Clojure in a Box as one of my very first efforts.

What I'm trying to replicate is the expericence described in "Swank
Clojure gets a Break with the Local Environment" (http://
hugoduncan.org/post/2010/
swank_clojure_gets_a_break_with_the_local_environment.xhtml). I have
gotten this to work (quoted from this web page): "Pressing enter on
one of the local variable lines will pull up the SLIME inspector with
that value." (BTW, I am debugging the same test code as is on this web
page.)

I have *not* gotten this to work: "If you go back to the REPL without
closing the SLDB frame, there will be no prompt, but pressing enter
should give you one.  The local variables are then all be avaiable for
evaluation form [from] the REPL." I *can* get a REPL prompt, but when
I try to print a variable in scope (in this case, c), I get the
following:

-----
Unable to resolve symbol: c in this context
  [Thrown class java.lang.Exception]

Restarts:
 0: [QUIT] Quit to the SLIME top level
 1: [ABORT] ABORT to SLIME level 0

Backtrace:
  0: clojure.lang.Compiler.resolveIn(Compiler.java:5677)
  1: clojure.lang.Compiler.resolve(Compiler.java:5621)
  2: clojure.lang.Compiler.analyzeSymbol(Compiler.java:5584)
  3: clojure.lang.Compiler.analyze(Compiler.java:5172)
  4: clojure.lang.Compiler.analyze(Compiler.java:5151)
  5: clojure.lang.Compiler.eval(Compiler.java:5428)
  6: clojure.lang.Compiler.eval(Compiler.java:5391)
  7: clojure.core$eval.invoke(core.clj:2382)
  8: swank.commands.basic$eval_region.invoke(basic.clj:47)
  9: swank.commands.basic$eval_region.invoke(basic.clj:37)
 10: swank.commands.basic$eval807$listener_eval__808.invoke(basic.clj:
71)
-----

I have taken detailed notes of what I have tried (too long to list
here) and will be glad to send them to anyone who wants to take a
look. Thanks for any suggestions you might have.

-- 
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

Reply via email to