/proc/$PID/exe is a link to the executable. You can load that executable into gdb and attach to the hung process. Then you will probably discover that important debug symbols are missing but it's a different matter.

As an example, let's say process 1117 has hung:

[root@Sailfish ~]# ls -la /proc/1117/exe
lrwxrwxrwx 1 root root 0 Sep  9 12:59 /proc/1117/exe -> /usr/libexec/mapplauncherd/booster-qt5
[root@Sailfish ~]# gdb /usr/libexec/mapplauncherd/booster-qt5
GNU gdb (GDB) Mer (7.6.2+git2)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "armv7hl-meego-linux-gnueabi".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/libexec/mapplauncherd/booster-qt5...Reading symbols from /home/debug/lib/debug/usr/libexec/mapplauncherd/booster-qt5-1.1.14-1.2.48.jolla.arm.debug...done.
done.
(gdb) attach 1117
Attaching to program: /usr/libexec/mapplauncherd/booster-qt5, process 1117
Reading symbols from /usr/lib/libapplauncherd.so...Reading symbols from /home/debug/lib/debug/usr/lib/libapplauncherd.so-4.1.29-1.9.14.jolla.arm.debug...done.
done.
Loaded symbols for /usr/lib/libapplauncherd.so
Reading symbols from /lib/libresolv.so.2...Reading symbols from /home/debug/lib/debug/lib/libresolv-2.19.so-2.19+6.13.1-1.4.16.jolla.arm.debug...done.
...

and so on. The rest is a regular gdb debugging exercise.

Cheers,
-Slava


On 09/09/18 12:55, rinigus wrote:
No, I didn't. Its QML/Python app, so it is not clear what I should attach the debugger to. sailfish-qml?

Rinigus

On Sun, Sep 9, 2018 at 12:35 PM Slava Monich <slava.mon...@jolla.com <mailto:slava.mon...@jolla.com>> wrote:

    Have you tried debugging with a debugger (run the app under gdb
    and examine the backtrace when it gets stuck)? That seems to be
    the obvious first step to me.

    Cheers,
    -Slava

    We debugged a failure to initiate destruction further. As
    suggested by @wdehoog, I added

        Connections {
             target: __quickWindow
             onClosing: console.log("....")
         }

    to ApplicationWindow. This one does get called during app
    closure, without further propagation over to destruction of items.

    Any ideas on how to debug it further?

    Rinigus



    On Sat, Sep 8, 2018 at 4:24 PM rinigus <rinigus....@gmail.com
    <mailto:rinigus....@gmail.com>> wrote:

        Hi,

        I am working on Pure Maps - a fork of @otsaloma's map
        applications. As a background: Its a Python app, with
        pyotherside used for QML/Python interaction. Its also using
        Mapbox GL widget that I wrote on the basis of Mapbox GL
        QtLocation plugin.

        I am facing a problem which I don't know how to solve, hence
        asking for help. Namely, Pure Maps sometimes does not
        shutdown cleanly after closure by the user. Namely, when app
        is closed in GUI (I presume close guesture or touching X in
        SFOS overview mode), the process stays. Same if the app is
        started from terminal - if the shutdown was unsuccessful,
        terminal prompt does not return after closing the program.

        And here were the mystery starts. With the suspicion that
        maybe some python call is hanging, the printouts were added
        before and after Python calls (through QML Python wrapper).
        Regardless to whether the app was shutdown cleanly or was
        left hanging, the calls (sync or async) always returned.

        I have added printout statements in Component.onDestruction
        for key QML items in the app and could see that, when the app
        hangs, none of the onDestruction handlers were called.

        Hence the question, what could cause Silica app to refuse
        starting destruction cascade?

        This issue is mainly reported by J1 users and I had a great
        help from @pichlo with debugging it. Sometimes, we observed
        OOM killing of other app during the navigation. So, I
        presume, the device is under significant RAM pressure. But
        still, I am rather blank on where to debug it further and
        what could cause such behavior.

        For the record, haven't seen this on my device (onyx).

        Rinigus



    _______________________________________________
    SailfishOS.org Devel mailing list
    To unsubscribe, please send a mail todevel-unsubscr...@lists.sailfishos.org
    <mailto:devel-unsubscr...@lists.sailfishos.org>



_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

Reply via email to