Fwd: GDB Variables/Watches

Niko Sams niko.sams at gmail.com
Sat Jun 13 16:40:18 UTC 2009


On Sat, Jun 13, 2009 at 14:51, Vladimir Prus<ghost at cs.msu.su> wrote:
> On Saturday 13 June 2009 Niko Sams wrote:
>
>> Resending mail because the attachment is too large.
>>
>> uploaded the patch here:
>> www.vivid-planet.com/upload/dbg.diff
>
> As I've said on IRC, I have two concerns about this patch:
>
> 1. It's big.
True. It's not just a patch to fix locals - it's a replacement for the whole
locals/watches/tooltip implementation. (locals are just the first
thing I got working)
And as the code is taken from an well working application (they even
released a stable version)
I think it should be not that bad.

> 2. Substantial parts of it deal with debug helpers for display of
> STL and other things, and we'll get that mostly for free in GDB 7.0.
That debug helper stuff in my patch is all commented out. I'd love to drop
that if we can use gdb python scripts for that.

> I've tried to hack something myself, and the patch is attached. While
> it presently crashes due to me messing up order of destruction somewhere,
> I think it will give us >50% of what we want from local variables display,
> and it's much more smaller. As for remaining <50%, it's probably a UI
> issue that I'll post about separately.
If you want to complete the current code I'm of course fine with that and will
drop the qt-creator code.

However if I will work on that we should consider using qt-creator code:
- imho it's much easier to understand (I lost motivation when looking at
those Variable* classes - there are so many of them related to each other)
- it's easier to port something that works
- it's maintained by nokia, we can integrate their patches
- we don't need to take everything (debug helper)
- there are debugger independent classed we can just put into the platform and
let other plugins use it

We have two possibilities:
1. Use my patch and continue working on it
2. Use the current implementation, refactor debugger independent classes out and
make it work.

Also other developers should comment on this issue :D

Niko




More information about the KDevelop-devel mailing list