Hi Lee,
Personally I think JSwat does the job right in that you can break the
code and get a look at local variables. There has also been release a
'debug-repl' which allows you to halt execution and jump into a REPL,
like so: http://georgejahad.com/clojure/debug-repl.html. There exists
2
I apologize for the length of this message, but I've run into a problem that I
think I might approach in any of several ways, each of which leads to questions
about things that I'd like to know more about in any event. Some are dev
environment questions and some (re: circular lists near the
An alternative: Is there a way to watch my running Clojure program
without breaking it, that is to observe the recent call history (of
my own definitions, either all of them or specifically marked ones)
from outside the process?
If you send a SIGQUIT to the java process, it will print the
On Mar 17, 2010, at 8:14 AM, Lee Spector wrote:
The root problem is that I think I have an infinite loop somewhere
in my code and I'm having a hard time tracking it down. [...] In
Common Lisp I would wait until I think I'm in trouble, break
execution with a keyboard interrupt, look at the
Thanks Richard.
The SIGQUIT thing sounds potentially useful, but when I send a SIGQUIT to the
stuck (looping) java process it has no effect. I've tried sending SIGQUIT via
the Max OS X Activity Monitor and also kill -3, kill -s SIGQUIT, and kill
-SIGQUIT with the process ID from a terminal
Thanks Terje. I think I must be missing something because both your profiling
and waiting until you are in the situation then use trace on candidate
culprits ideas sound great IF I could do ANYTHING when I'm in the problematic
situation. But I can't. My REPL is frozen and unresponsive to
It'd still be even nicer to be able to get some info without
quitting, but this is definitely an improvement!
The JVM shouldn't quit when it gets a SIGQUIT. That's just the signal
name.
You might find this useful:
Thanks again -- that is definitely a useful page at unixville.
BTW from the dump I got from your previous suggestion I think that my original
bug wasn't a loop after all, but was instead caused by exponentially growing
BigIntegers. We'll see, but at least I have a better way to investigate
On 17 March 2010 20:40, Lee Spector lspec...@hampshire.edu wrote:
Thanks Richard.
The SIGQUIT thing sounds potentially useful, but when I send a SIGQUIT to the
stuck (looping) java process it has no effect. I've tried sending SIGQUIT via
the Max OS X Activity Monitor and also kill -3, kill