[PATCH] Re: Bug 68015: Variables/Watch Window closes on first view
Richard Dale
Richard_Dale at tipitina.demon.co.uk
Mon Jun 6 20:27:06 UTC 2005
On Monday 06 June 2005 16:59, Vladimir Prus wrote:
> On Monday 06 June 2005 17:31, Richard Dale wrote:
> > > Looking at your code, it looks like it still has the same problem. If I
> > > open a thread in framestackview, the selectFrame signal is emitted, and
> > > rdbcontroller end up emitting showStepInSource -- which is exactly what
> > > I'm trying to avoid. Did I miss something?
> >
> > You say ' Looking at your code', but I can't remember any problem with
> > this specific issue. Can you try it out in practice and see if there is a
> > problem?
>
> Ok, I've found 'ruby' installed here and tried the debugger with this
> program:
>
> threads = []
> 6.times { |i|
> threads << Thread.new(i) {
> raise "Boom!" if i == 3
> puts i
> }
> }
> threads.each {|t| t.join }
>
> I set breakpoint on the "raise" line and run it. The framestack widget
> shows some threads, one is opened and others are closed. When I click on a
> "+" near closed thread, the framestack windows disappears and the first
> frame of the selected thread appears to be selected. That's behaviour my
> patch is trying to fix for C++ debugger.
Ok - interesting! But welcome to ruby, even if it's only to help with
improving C++ support..
I spent about 3 months on the ruby debugger - 1 month adding ruby support, 1
month fixing problems with the debugger logic and another month improving the
introspection of the ruby bindings. It seemed to me that jbb had done a
really good job with the original implementation, but subsequent maintainers
didn't understand the code as well as he did and the code has suffered from
some half assed fixes. Certainly some of the code in the variables widget is
much too complicated. If I personally was trying to improve gdb support, I
would do it by just porting the ruby debugger code back to gdb. Even if you
don't do this, you can use the ruby debugger as a reference implementation
for behaviour as you've done above.
-- Richard
More information about the KDevelop-devel
mailing list