freeride-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FR-devel] Re: Hangups in the debugger (was: Where can I put this?)


From: Laurent Julliard
Subject: [FR-devel] Re: Hangups in the debugger (was: Where can I put this?)
Date: Wed, 11 Sep 2002 09:41:50 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020826

address@hidden wrote:
On Tue, 10 Sep 2002 19:09:13 +0200, Laurent Julliard
<address@hidden> wrote :


I took your own Ruby install, put it on my Win2k machine and tried to run FreeRIDE. It starts ok until I run the debugger, at which point it freezes I guess this is when I attach the stdout to FreeRIDE via addInput() . Oh by the way I do confirm that inputs.rb does work with your instance of Ruby 1.7.3


OK, this is consistent with what I'm seeing too.


So now I have FreeRIDE working with Rich Kilmer's Ruby (Ruby 1.7.3 a week ago compiled with VC++ 7) but the addInput do not display anything in the text console and I have Lyle's version (Ruby 1.7.3 very latest from CVS compiled with ??) where addInput() works but FR hangs!!


Welcome to the bleeding edge of software development ;)


FreeRIDE happens to be a very interesting project from this point of view and especially the Debugger. It is a the bleeding edge of almot all the modules I have used so far: Ruby/Win32 and the thread problem, FXRuby addInput() and, incing on the cake, I think I have also discovered glitches in FXscintilla on Windows. As chinese poeple say: "May you live interesting times..." :-))


By the way Lyle you can run the FreeRIDE code if you want. it is attached below. I am also cc'ing the FR-dev mailing list so that other FR developers can try the same scenario and report to me. To observe the hang do as follows:


<snip>

Thanks very, very much for giving me this roadmap of what to try. After some
debugging this afternoon I have a hunch about what's wrong; I'll try to
implement a fix tomorrow and see how it goes.

The problem (or what I believe to be the problem) is related to how Ruby
allocates the I/O object for the pipe, which in this case has both "read"
and "write" ports. (It's a significantly different situation than my simple
"inputs.rb" example, where the pipe was opened in read mode only; there's
only one "port" to keep up with.) For a pipe with both input and output, the
Ruby IO object actually stores two different file descriptors, but my trick
in FXRuby for extracting the FXInputHandle for a given IO object only
considered the first one.

The modification I'm going to try out tomorrow will consider the 2nd
argument to FXApp#addInput (i.e. the one where you tell whether you're
interested in input events vs. output events) and, if it's passed an IO
object that has both input *and* output ports, it will pick the right one.


This sounds like a very reasonable explanation especially because this is the only difference I could noticed myself in the inputs.rb code and the way I use addInput() in FreeRIDE.


Whether it works or not, I'll let you know the results. Hopefully I'll find
time to investigate this tomorrow (Wednesday); it shouldn't be too much work
to make the fix I'm thinking about. If it does work, I will of course
work-up a new FXRuby release for you guys ASAP.


If we can make it work you'll deserve some space in the hall of fame of the FreeRIDE project.

Thanks again for all your help
Laurent



--
Laurent JULLIARD - Xerox R&T/SSTC/XPA - Open Source team
>> Host your Xerox Software project on CodeX: http://codex.xerox.com
>> address@hidden community: http://xww.linux.world.xerox.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]