[SailfishDevel] Debugging external libraries

Dmitriy Purgin dpurgin at gmail.com
Sun Mar 15 13:08:39 UTC 2015


Hi,

thanks for answering.

What difference does debugging on device or emulator make to debugging the
contacts lib itself if the environment is set properly for both? The worst
case you get is that it tells you that there are no contacts whatsoever.
The question is not about debugging the contacts database but about the
principles of debugging any shared library. The only reason I've brought
the contacts lib as an example is because I'm working with it now.

So in this case I'd like to trace the execution of personByPhoneNumber().
In other words, step into seasidefiltermodel.cpp and look what's happening
in SeasideFilteredModel::personByPhoneNumber and further
seasidecache.cpp's SeasideCache::itemByPhoneNumber,
and so on.

Cheers
Dmitriy

2015-03-15 18:00 GMT+06:00 Andrey Kozhevnikov <coderusinbox at gmail.com>:

>  imho you need to install it to phone and debug contacts on device, not
> emulator?
>
> 15.03.2015 16:47, Dmitriy Purgin пишет:
>
>   Hi,
>
>  I'm struggling the whole day with this problem. Is there a way to debug a
> shared library not included to a project? In particular I'd like to see
> what's happening in nemomobile-qml-plugin-contacts-qt5.
>
>  I have the following sample code being executed in Sailfish Emulator:
>
>  import org.nemomobile.contacts 1.0
>
> // ...
>
>  PeopleModel {
>      id: people
>  }
>
> // ...
>
>  var p = people.personByPhoneNumber('somephonenumber');
>
>  I'm putting a break point on people.personByPhoneNumber() call and try to
> step in, and it doesn't work.
>
> Prior to trying to step into the library code I've installed both
> nemomobile-qml-plugin-contacts-qt5-debuginfo and
> nemomobile-qml-plugin-contacts-qt5-debugsource to i486 target using Qt
> Creator's SailfishOS tab. After that stepping in didn't work. Then I pushed
> the 'sync' button  a couple of times to make sure it worked but it didn't.
>
>  Then I've logged into the build machine and installed these packages
> using zypper. Pushed the 'sync' button in Qt Creator but stepping in still
> didn't work. Interesting thing is though that the packages were installed
> as if there were no packages installed using Qt Creator.
>
>  I've looked into gdb output and saw that it sets substitute-path
>
> SailfishOS/mersdk/targets/SailfishOS-i486/usr/src for /usr/src. I didn't
> have anything in SailfishOS/mersdk/targets/SailfishOS-i486/usr/src, in
> fact, I didn't have the src directory at all. It seems like the packages
> I've installed in the build machine were not synchonised with my host
> machine. I've done it with scp transfer but stepping in still doesn't work.
>
>
>  Could anyone please give me some hints on debugging external libraries
> or guide me to any resource explaining the process?
>
>
>  Thanks.
>
>
>  Cheers
>
> Dmitriy Purgin
>
>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to devel-unsubscribe at lists.sailfishos.org
>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to
> devel-unsubscribe at lists.sailfishos.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20150315/222d4d88/attachment.html>


More information about the Devel mailing list