Re: help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-18 Thread LauJensen
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

help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-17 Thread Lee Spector
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

Re: help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-17 Thread Richard Newman
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

Re: help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-17 Thread Terje Norderhaug
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

Re: help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-17 Thread Lee Spector
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

Re: help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-17 Thread Lee Spector
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

Re: help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-17 Thread Richard Newman
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:

Re: help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-17 Thread Lee Spector
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

Re: help with infinite loop: break and examine stack? dynamic tracing? circular lists?

2010-03-17 Thread Michael Wood
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