[Gammaray-interest] Cross-platform remote debugging
Volker Krause
volker.krause at kdab.com
Fri Jan 24 09:11:40 CET 2014
On Thursday 23 January 2014 22:26:53 Peter Kümmel wrote:
> On 23.01.2014 10:05, Volker Krause wrote:
> > On Wednesday 22 January 2014 17:52:26 Peter Kümmel wrote:
> >> Is 2.0 now ready for remote debugging from desktop to embedded ARM
> >> systems?
> >
> > yep, we have tested this on Raspberry Pi and Freescale i.MX6 systems
> > running Linux. It has also been successfully used on (OMAP-based IIRC)
> > QNX/BB10 systems, but there you might still need some manual fiddling
> > with LD_PRELOAD to get it working. We also have tested it on a system
> > with a custom stripped- down Qt5 that doesn't contain QtWidgets. In the
> > unlikely case the target doesn't have QtGui either, some more work is
> > required to completely split this out into plug-ins. It also compiles
> > fine for Android, but we haven't looked into how to do the injection
> > there yet.
> >
> > For cross-compilation with CMake you find a few example toolchain files
> > checked in (cmake/ subdir).
> >
> > The communication protocol is based on QDataStream and thus works between
> > Qt versions, between operating systems and between architectures. We have
> > tested various combinations, but I think we had a strong bias towards
> > little endian systems.
> >
> > regards,
> > Volker
>
> This sounds great! I will definitely try it.
> I also have a headless app and I will see if I could make it work.
>
> Had a look at the cross-compiling cmake files, looks straight forward.
> I assume I have to define GAMMARAY_PROBE_ONLY_BUILD when cross-compiling,
> so why not defining GAMMARAY_PROBE_ONLY_BUILD already in the target cmake
> file?
Actually no, this is for building probes for multiple ABIs, and co-install
them (e.g. 64 vs 32 bit, debug vs. release on Windows, different Qt versions,
etc). In a future version we are also going to add support for auto-detecting
which one to use (right now you have to specify that manually if there's more
than one).
On the target you want a full build, to get the command line injector. Usage
on the target is then as follows:
gammaray --inject-only <program> <args>
You can also specify on what network to listen this way, in case you have a
complex setup and its default isn't good enough.
It will also broadcast in the network, so the launcher UI on the client will
offer you a list of active targets to connect to (see "Connect" tab). Direct
connection with command line arguments is also possible of course.
If you want to optimize the target build, we could add an option to not build
the client. That's already prepared, since it's automatically excluded if
there's no QtWidgets, so this is just a bit of changing CMake conditions.
regards,
Volker
--
Volker Krause | volker.krause at kdab.com | Senior Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4840 bytes
Desc: not available
URL: <http://mail.kdab.com/pipermail/gammaray-interest/attachments/20140124/56dd2d06/attachment.bin>
More information about the Gammaray-interest
mailing list