On 30.10.2011 13:21, Volker Krause 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 Congratulation for this very nice tool! 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? 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. And how much does the current code depend on x86/64? Would it be hard to support PPC? Peter