Remote Debugging Error



  • Hi all,

    I am trying to remote debug a Beaglebone Black revision C(Debian Jessie), with Qt Creator installed in an Ubuntu 16.04 Host.

    I am able to run an application on BBB. But I am not able to Debug it.

    When I am attempting Debugging as per procedure http://doc.qt.io/qtcreator/creator-debugger-operating-modes.html.

    But it always ended with the following error -
    root@beaglebone:~# ./gdbserver :5555 simpleqt
    Process simpleqt created; pid = 5491
    Listening on port 5555
    Remote debugging from host 192.168.7.1
    simpleqt: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: no version information available (required by simpleqt)
    simpleqt: /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5: no version information available (required by simpleqt)
    No protocol specified
    QXcbConnection: Could not connect to display :0.0

    Child terminated with signal = 0x6 (SIGABRT)
    GDBserver exiting
    root@beaglebone:~#

    This is the case even for a very simple qt program.

    Thanks in advance for the solution.

    Thanks & Regards,
    Sajeevan.K



  • I bet there is a flag or mismatch command in your gdbserver...

    So, Do you have a good communication with your target? - At least with SSH?
    Maybe this can help you: https://youtu.be/pYflLlXaPnE as reference



  • Hi Charlie,

    Thank You for the reply.

    I tried to see the video. It is showing the video is unavailable.

    I have a good communication with the target through SSH.

    As You said, there may be some mismatches in flags.

    So I attached a fe r settings in Qt Creator is as shown in - debugger settings.png

    After that I am getting an error message as shown in screenshot - error message.png
    Error Message is - The Upload process failed to start. Shell missing?
    Even though I googled, I couldn't find a solution for this problem also. I just click Yes for this.
    Then screen appears as shown in screenshot -
    Debugging start.
    But at this point when I press Continue(F5), then the error message appears in target system as shown in first mail. And in Qt Creator, execution is not reaching even to the next statement.

    2_1515214992043_error message.png 1_1515214992043_Debugging start.png 0_1515214992042_debugger settings.png

    Thanks in advance for the clue in solving this issue.

    Thanks & Regards,
    Sajeevan.K



  • @Sajeevan-K

    Can you update Qt and Qt Creator? And see what happens.



  • Hi Charlie,

    I was trying to update Qt and Qt creator in my Ubuntu Host PC.
    As per the post - https://askubuntu.com/questions/371920/how-to-upgrade-qt-creator - I tried to update Qt Creator. These steps -
    sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install qtcreator

    • were successfully completed. But the version number of the Qt Creator Software in my Ubuntu Host remains same - 3.5.1. If these steps of updating Qt Creator is wrong, please correct me.

    About updating Qt for BBB

    Earlier I was using linaro tool chain 4.9.4 and corresponding sysroot. Now I added linaro tool chain 7.2.1 and corresponding sysroot. Also once more I downloaded qt source code, this time qt-everywhere-opensource-src-5.9.3.tar.xz (earlier it was 5.8.0). With this combination, now there is an improvement.
    Now the messages in BBB target is as shown below:

    ./gdbserver :5555 simpleqt
    Process simpleqt created; pid = 5021
    Listening on port 5555
    Remote debugging from host 192.168.7.1
    simpleqt: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: no version information available (required by simpleqt)
    simpleqt: /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5: no version information available (required by simpleqt)

    Child terminated with signal = 0x4 (SIGILL)
    GDBserver exiting

    Now the error message is
    Child terminated with signal = 0x4 (SIGILL).

    With this combination also, the problem is not solved. Looking for Your kind suggestions...
    Thanks in advance.

    Thanks & Regards,
    Sajeevan.K


  • Moderators

    @Sajeevan-K You can simply use Qt Online Installer to install latest Qt and QtCreator.



  • @jsulm,

    Thank You for the reply.
    Now I updated Qt and Qt Creator on line.

    With this updated Qt Creator, now I tried to debug.
    There is an improvement from the old scenario.

    The Error Message "The upload process failed to start.Shell missing?" is not coming now. This improvement, improvement happened, after adding the Server Start Script in Start Debugger window.
    1_1515581633466_Screenshot from 2018-01-10 16-22-18.png 0_1515581633465_Screenshot from 2018-01-10 16-23-20.png

    And the remote_debug.sh is as shown below.

    #!/bin/bash
    set sysroot /opt/sysroot-eglibc-linaro-2017.01-arm-linux-gnueabihf
    set solib-absolute-prefix /opt/sysroot-eglibc-linaro-2017.01-arm-linux-gnueabihf
    set solib-search-path /opt/sysroot-eglibc-linaro-2017.01-arm-linux-gnueabihf

    Here also Debugging starts as indicated in attached screens. But when I press continue still the same problem - Child terminated with signal = 0x6 (SIGABRT) - exists as shown below

    root@beaglebone:/home/debian# ./gdbserver :5555 simpleqt
    Process simpleqt created; pid = 30664
    Listening on port 5555
    Remote debugging from host 192.168.7.1
    simpleqt: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: no version information available (required by simpleqt)
    simpleqt: /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5: no version information available (required by simpleqt)
    No protocol specified
    QXcbConnection: Could not connect to display :0.0

    Child terminated with signal = 0x6 (SIGABRT)
    GDBserver exiting
    root@beaglebone:/home/debian#

    Is this problem having any relationships with gdb versions in ubuntu host and BBB target.

    In ubuntu host gdb version - 7.8 as shown below

    sajeevank@sajeevank-Vostro-3559:/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin$ arm-linux-gnueabihf-gdb
    GNU gdb (Linaro GDB) 7.8-2014.09
    Copyright (C) 2014 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
    strikethrough text

    In BBB target gdb version - 7.7.1 as shown below

    root@beaglebone:/home/debian# gdb
    GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
    Copyright (C) 2014 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

    These versions are exactly not equal.

    Looking forward for Your valuable suggestions. Thanks in advance...

    Thanks & Regards,
    Sajeevan.K



  • @Sajeevan-K said in Remote Debugging Error:

    simpleqt: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: no version information available (required by simpleqt)
    simpleqt: /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5: no version information available (required by simpleqt)

    Can you check the state of the libraries that are above? How do you install Qt in BBB?



  • @Sajeevan-K said in Remote Debugging Error:

    The libraries libQt5Core and libQtWidgets are available in the folder /usr/lib/arm-linux-gnueabihf/

    root@beaglebone:~# find / -name libQt5Core
    /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.3.2
    /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5
    /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5.3
    root@beaglebone:~# find / -name libQt5Widgets
    /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5.3.2
    /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5.3
    /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5
    root@beaglebone:~#

    I was installing qt by using the command

    apt-get install qt-sdk

    root@beaglebone:~# apt-get install qt-sdk
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    qt-sdk is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 174 not upgraded.
    root@beaglebone:~#

    Thanks & Regards,
    Sajeevan.K



  • @Charlie_Hdz said in Remote Debugging Error:

    no version information available

    I did remote debugging with the Rpi once, those instructions can help you:

    1. Install the specific GDB version of your target in the host.
    2. This library was important ton install in the Rpi.
    sudo apt-get install libncurses5:i386
    
    1. Transfer the binary file to the target.
    2. Make the binary to be runnable by chmod
    3. Run the GDB target version in the host in the "BBB" way.

    If it does not work, try this way...

    1. I recommend you to try to debug a simple C++ program in a different enviroment (Eclipse f.i); this can give you some hints about which is the real problem.

    Something that I investigated:

    The "no version information available" means that the library version number is lower on the shared object

    Can you compile your project to match those versions?

    AFAIK, those are only warnings.

    I'll focus in these log:
    Child terminated with signal = 0x6 (SIGABRT)
    but you also had
    Child terminated with signal = 0x4 (SIGILL).

    I bet the computer is trying to execute an instruction that it doesn't understand. SIGILL and SIGABRT signals.

    SIGABRT is commonly used by libc and other libraries to abort the programme in case of critical errors. For example, glibc sends an SIGABRT in case of a detected double-free or other heap corruptions.



  • Hi Charlie,

    Thank You very much for Your help. With Your hints and suggestions, I could solve the issue.

    Basic solution is - for debugging we have to use the same procedure of running the application, in target. i.e we have to use .xinitrc file and startx command ( which I am using for running the application in target ), even for debugging.

    For running the application I was using the file .xinitrc, the contents of which is as shown below.

    oclock -geometry +1450+920 -bg ivory -fg blue &
    ./simpleqt &
    xhost +
    exec /etc/alternatives/x-window-manager

    And I have to the startx command for running the application in target.i.e

    root@beaglebone:~# startx

    Now for debugging also I have to use the same procedure, but the contents of .xinitrc shall be slightly different, as shown below

    oclock -geometry +1450+920 -bg ivory -fg blue &
    ./gdbserver 192.168.6.2:5555 simpleqt &
    xhost +
    exec /etc/alternatives/x-window-manager

    Thank You very much again.

    Thanks & Regards,
    Sajeevan.K


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.