-
Notifications
You must be signed in to change notification settings - Fork 284
Known Issues
The way GammaRay injects itself into the analyzed application requires dynamic linking to Qt at the moment. Neither statically linked applications nor a statically linked GammaRay will work.
The solution would be "static injection", similar to what QtCreator does with the QML debugger, statically linking GammaRay in to the application. This has not been implemented yet. Also note that this will not work with GammaRay plug-ins, those would need to be linked statically as well.
If your Qt is linked with "-Bsymbolic-function", preloading wont work. If used, references to global functions are bind to the shared object internally. The definition of the function is now fixed and cant be overwritten by preloading. Note that this is different from using -reduce-relocations from Qt's configure command, this will add exceptions for the preloading hooks we (and also e.g. Squish) need.
Be sure that your distro provided packages or your self-compiled packages are not linked with this flag (check with echo $LDFLAGS
before compiling) without including the exception from src/corelib/QtCore.dynlist. For more info see: "man ld; search for "-Bsymbolic-function".
Affected distros:
- Ubuntu 10.10, 11.04 (Bug report: https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/906014)
If you are affected by this, try the gdb or style injectors instead, using the "-i" command line option.
Similar issue as the one above, but here also the -reduce-relocations flag of Qt's configure is affected. The gold linker does not seem to support adding exceptions to the -Bsymbolic-functions option yet, so the hooks we need in QtCore wont work. (Issue is tracked here: http://sourceware.org/bugzilla/show_bug.cgi?id=13577)
Note that -reduce-relocations is enabled by default in Qt5.
Workarounds are either not using -no-reduce-relocations in combination with gold when compiling Qt or using a differerent GammaRay injection method. Both the gdb and style injectors still work in this case.
When attaching GammaRay to an app bundle that contains its own Qt version, GammaRay may additionally load the Qt libraries it has been linked against. This will cause undefined behavior even if these are exactly the same Qt versions as static variables are overwritten in the process.
So far, the only workaround is adding GammaRay to the same app bundle.
GammaRay fails to work when build for 32bit systems on Mac. No workaround is currently known.
GammaRay fails to attach to some applications. We are investigating in this issue. Please try the startup method, with passing the application to GammaRay in command line.
Fixed in version 1.1.
Release builds with MSVC on 64bit Windows will fail to attach or start with the DLL injector (not implemented/tested yet). The style injector should work though (start with "-i style" command line option).
Fixed in version 1.1.