GammaRay - Introspection/Debugging Tool for Qt Applications

Volker Krause vkrause at kde.org
Wed Nov 2 19:43:38 GMT 2011


On Wednesday 02 November 2011 11:10:17 Bart Cerneels wrote:
> On Sun, Oct 30, 2011 at 13:21, Volker Krause <vkrause at kde.org> wrote:
> > Hi!
> > 
> > During the Qt Dev Days in Munich last week we (KDAB) released a new Free
> > Software introspection/debugging tool for Qt applications, called
> > GammaRay:
> > https://github.com/KDAB/GammaRay
> > 
> > It hooks itself into a Qt application (at start-up or at runtime) using a
> > variety of methods (ranging from assembler hacks to (ab)using Qt plug-ins)
> > and uses the Qt meta object system for introspecting object, properties,
> > signals, slots, signal/slot connections, etc. Nothing really new until
> > here, tools like Qt Inspector or KSpy can do this already. On top of that
> > GammaRay adds a bunch of higher level tools though, for example:
> > 
> > - QWidget layout overlay, similar to designer
> > - Inspecting a QGraphicsScene and various details of QGraphicsItems
> > (visualizing shapes, bounding rects, transformation origins, etc)
> > - Looking at the full (proxy) model hierarchy and all intermediate results
> > in there
> > - a live updating QStateMachine visualization
> > - attaching of QScriptEngineDebugger and QWebInspector to the
> > corresponding
> > objects in the application
> > - a QTextDocument document object model viewer
> > 
> > Additionally, GammaRay has a plug-in interface for adding new tools, say a
> > KJob tracker.
> > 
> > GammaRay works on Linux, Mac and Windows (MSVC only so far), it needs to
> > be
> > compiled against the same Qt version used by the application you are about
> > to debug though. There's also a Qt Creator plug-in for it
> > (https://github.com/KDAB/KDAB-Creator).
> > 
> > Some screenshots can be found here: http://www.kdab.com/gammaray
> > 
> > GammaRay was originally developed in support for the Kontact Touch
> > project,
> > back when there wasn't a QML debugger yet. The proxy model debugger also
> > proved quite helpful on KMail, maybe it can help some of you as well :)
> > 
> > Needless to say that contributions are very much welcome.
> > 
> > regards
> > Volker
> 
> I've asked this at the devdays but want to spread the idea amongst the
> larger KDE comunity:
> Can this tool, or it's technologies, be use to make inline translation
> of a running application possible? Would greatly simplify the process
> (and more fun!) and get better results since the string changes will
> be immediately visible, preventing wrong context assumptions and to
> long strings.

I think GammaRay's core (injecting and accessing the object tree) would be a 
good start for such an inline translation tool. Actually, you can use GammaRay 
already to edit a lot of user visible strings by changing properties etc., 
just not fully inline in the UI.

However, I see one big challenge with this approach: The strings we access 
there are already fully assembled, so no placeholders etc. are available 
anymore. For a real translation tool we would need to be able to query the 
corresponding unprocessed source string as well (and trigger a re-processing 
of it after translation, for live updates).

regards
Volker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20111102/d015cc2b/attachment.sig>
-------------- next part --------------

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


More information about the kde-core-devel mailing list