[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: GammaRay - Introspection/Debugging Tool for Qt Applications
From: Volker Krause <vkrause () kde ! org>
Date: 2011-11-02 20:05:17
Message-ID: 4911893.BZ8ygj8Ma5 () vkpc9
[Download RAW message or body]
On Tuesday 01 November 2011 21:56:53 Peter Kümmel wrote:
> On 01.11.2011 08:58, Volker Krause wrote:
> >> I've also tried to attach to console apps without success.
> >> Then I realized that you use the hijacked process to show
> >> the GammaRay mainwindow which is not possible in a
> >> QCoreApplication executable.
> >>
> >> So I wonder how difficult it would be to run GammaRay in a
> >> different process? Then an IPC mechanism is needed for all
> >> the information. Would this be fast enough? Do you plan
> >> to add this in future?
> >
> > I'd love to have that, for console apps, remote debugging on an embedded
> > system, and for less interference with the debugged process :)
>
> Couldn't you reuse some IPC parts from KDAB's canceled test tool ;)
I'd actually need to check how that worked ;)
Two other tools to look at would be the Qt Creator QML debugger and Qt
Inspector (both use custom protocols with QDataStream-based serialization
AFAIK).
Another idea that came up for dealing with anything QObject based was to just
export those objects to D-Bus. That automatically gives you cross-process
property/signal/slot introspection (even remotely, the Akonadi remote
debugging server has a D-Bus TCP bridge built in that is also usable stand-
alone). Doesn't really help with things like QAbstractItemModel though.
> > You can probably get a large amount of the features by having some kind of
> > network transparent QAbstractItemModel adapter. But some feature need
> > direct memory access, like rendering of a second QGraphicsScene view,
> > unless you want to send pixmaps over IPC.
>
> Sounds manageable.
>
> >> Is there a single point where all the information of
> >> the target process goes through or is it all over the place?
> >> I assume at least each plugin pulls information by itself.
> >
> > Most of it goes through probe.cpp and the object models provided by it,
> > however all the plug-ins access raw QObject pointers they retrieve from
> > those models (and thus are bound to the same process).
>
> OK, but when the plugins also support ipc, it should be possible to remote
> debug/monitor for instance a state machine.
right, I think it's definitely doable, it's just quite a bit of work :)
regards
Volker
["signature.asc" (application/pgp-signature)]
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic