On Friday, 10 de December de 2010 17:52:57 Berthier, Emmanuel wrote:
> Hi,
> 
> I'm a Meego core developer and I wonder what kind of debug methodology is
> the best for a Handset platform.
> 
> I have experiment some solutions:
>       o Use a remote debugging method based on osc, gdbserver and Anjuta as 
> gdb
> frontend: + I can easily recompile module using osc
>               + I can debug the app using Anjuta
>               - but I can not easily debug dynamically linked libraries (as 
> RootFS
> generated by OSC only contains 1 project) 
>             - Anjuta Project backend is not
> compatible with Qt projects (Dependency Loop detected in makefile
> generated by qmake4) 
>      o Use a local debugging method based on gdb and debug
> packages:
>               + I need to download/install many debug packages using zipper
>               - I can not recompile a module
>               - gdb provide poor source level debugging experience
>       o Use a remote debugging method based on remote X session, ddd and debug
> packages: - I need to recompile ddd for Meego.
>               + I need to download/install many debug packages using zipper
>               - I can not recompile a module
>               + ddd provide good source level debugging experience
>       o Use a JTAG based debugger (ITP/Lauterbach probe):
>               + I need to download/install many debug packages using zipper
>               - I can not recompile a module
>               - JTAG break points halt the IA core and so interfere with some 
realtime
> system features. + T32 provide good source level and assembly level
> debugging experience
> 
> In fact, my need is to get an easy to setup, powerful compilation and debug
> environment (for user space app) on target (no emulation). My main issue
> concerns the management of dynamic libraries: I don't have a good solution
> for now. What is the common usage of debug packages?

Hi Emmanuel

I would say that the gdbserver option is by far the most attractive solution. 
You can use whatever debugging environment you're most comfortable with, you 
don't need the debugging symbols on the device nor do the heavy processing of 
the debugging information on it.

I don't know why you have a limitation of debugging dynamic libraries. My 
experiences with gdb + gdbserver allow me to debug libraries coming from 
different places. In my case, I simply NFS mounted my workstation's $HOME on my 
N900, started gdbserver on a binary I built and then started debugging Qt. 
Probably easiest would be if you just copied the libraries you built to the 
sysroot.

Local debugging is the "lazy" case, when you just want to do something and you 
don't mind the slowness of the device. It's also not a use-case you're going 
to have available in all devices. Eventually, you'll have to debug problems on 
production devices, where gdb isn't present.

Finally, JTAG is really a specialised case. It's more useful for benchmarking 
and dissecting why something is slow on device, or maybe for hardware 
debugging. See:

http://labs.qt.nokia.com/2009/09/29/exploring-qt-performance-on-arm-using-
finetoothcomb/
-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
  Senior Product Manager - Nokia, Qt Development Frameworks
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev

Reply via email to