[gambit-list] Remote debugger problem

James Long longster at gmail.com
Wed Jul 1 00:33:12 EDT 2009


I forgot to mention that the first problem must be a timing issue also
because if you sleep the primordial thread between thread creation, it
works:

(thread-start!
 (make-thread
 (lambda ()
   (/ 1 0))))

(thread-sleep! 1)

(thread-start!
 (make-thread
 (lambda ()
   (/ 1 0))))

On Wed, Jul 1, 2009 at 12:07 AM, James Long<longster at gmail.com> wrote:
> Hey Marc (and other Gambit folks, I realized this would be good for
> the gambit list too),
>
> Your remote debugger is awesome.  However, it travels further into the
> land of Gambit IO than I know.  I'm having one problem with it (I got
> the latest version of it).
>
> I found a rather concise example of the problem.  It seems that when
> two errors happen close enough in time, one remote debugger pops open
> with the correct error, and another pops open with this error:
>
> *** ERROR IN rdi-open-client,
> "Users/james/projects/scheme/gambit-iphone-example/lib/util/remote-debugger/rdi.scm"@108.5
> -- Broken pipe
> (force-output '#<input-output-port #3 (tcp-client "localhost" 20000)>)
>>
>
> You can get it to do this by just doing this in the debugee:
>
> (thread-start!
>  (make-thread
>  (lambda ()
>    (/ 1 0))))
>
> (thread-start!
>  (make-thread
>  (lambda ()
>    (/ 1 0))))
>
> Would you mind looking at it?
>
> As a separate subject, as I was integrating the remote debugger with
> my iphone app, I realized I can not only have access to the debugger
> from the iphone, but I can also fire up a main REPL and interactively
> develop from my main computer on the iphone!  That is very cool.
>
> Now, I can't call (##repl-debug-main) in the primordial thread, as
> your proof of concept does, because the main thread is the program
> which needs to continue executing.  So, my first attempt fired up the
> REPL from a child thread instead:
>
> (thread-start!
>  (make-thread
>  (lambda () (##repl-debug-main))))
>
> Do you see any problems with this?  This seems to work fine (a real
> Gambit REPL pops open in an xterm when the app start in the iphone
> simulator).  This got me thinking too: what is the relationship
> between stdin and stdout and the main REPL?  It seems that standard
> output is somehow redirected to this REPL.  Rather, if I call DISPLAY
> on any other thread it somehow appears in my above REPL.  How is that
> so?
>
> Thanks,
> James
> http://jlongster.com/
>



More information about the Gambit-list mailing list