QML remote debugging doesn't work - symbol lookup error, undefined symbol



  • My development environment:
    Host/Desktop: Ubuntu 12.04 LTS guest running in a virtual machine on a Windows 7 host, Qt4.8.0 libraries
    Device: own development, embedded Linux Cortex A8 device, TI SDK (am335x-evm-05.06.00.00) arm-arago Qt4.8.0 libraries

    After sucessfully creating and debugging my first "Hello World" Qt widget application on the Desktop and on the embedded device I wanted to do the same with Qt Quick. I did this by choosing the template "Qt Quick 1 UI". After successfully building and debugging the QML application on the Desktop and wanted to proceed doing the same on the embedded device. But here is my problem:

    When I start debugging on the embedded device (F5) I get the following application output:
    @Process /home/root/firstqml created; pid = 2465
    Listening on port 10000
    Remote debugging from host 192.168.0.110
    /home/root/firstqml: symbol lookup error: /home/root/firstqml: undefined symbol: _ZN28QDeclarativeDebuggingEnablerC1Ev

    Child exited with status 127
    GDBserver exiting@

    The debugger log shows the following:
    @...
    ~"Reading symbols from /home/bschoefmann/ti-sdk-am335x-evm-05.06.00.00/targetNFS/lib/ld-linux.so.3..."
    sLese /home/bschoefmann/ti-sdk-am335x-evm-05.06.00.00/targetNFS/lib/ld-linux.so.3......

    ~"(no debugging symbols found)...done.\n"
    ~"Loaded symbols for /home/bschoefmann/ti-sdk-am335x-evm-05.06.00.00/targetNFS/lib/ld-linux.so.3\n"
    ~"0x40056790 in ?? ()\n"
    *stopped,frame={addr="0x40056790",func="??",args=[]},thread-id="1",stopped-threads="all",core="0"
    47^done
    ...
    /home/root/firstqml: symbol lookup error: /home/root/firstqml: undefined symbol: _ZN28QDeclarativeDebuggingEnablerC1Ev
    =thread-group-exited,id="i1",exit-code="0177"
    ...@

    The qmake call for this debug build is:
    @qmake /home/bschoefmann/Data/X5/test/firstqml/src/firstqml/firstqml.pro -r -spec linux-gnueabi-oe-g++ CONFIG+=debug CONFIG+=declarative_debug@

    Does anyone know this problem and how to solve it? Any help is appreciated!
    Many thanks in advance!



  • Can it be that the solib-search-path is not set correctly?

    http://visualgdb.com/gdbreference/commands/set_solib-search-path



  • Hi Juergen_M,
    thanks for that info. But when I tried to use the command 'show' I got the "application not installed at the moment" message. So I tried to install via "sudo apt-get install nmh" as suggested. And now I have real troubles with my Ubuntu which says qmail installation fails (???):
    @The hostname -f command returned: $1

    Your system needs to have a fully qualified domain name (fqdn) in
    order to install the var-qmail packages.

    Installation aborted.@

    I will check the solib-search-path after I have fixed the qmail/show problem...



  • Ah sorry but I think your problem is a export LD_LIBRARY_PATH problem
    The solib-search-path command is for the gdbserver

    You need the correct pair of gdb/gdbserver. You cannot user your host gdb server which you normally use to debug on your host.

    You need the same Qt cross libraries on your host and on your target. Preferable with the same path.



  • On the embedded device I have GNU gdbserver (GDB) 7.2 "arm-arago-linux-gnueabi" and on the host, after sourcing environment-setup for the linux devkit it shows GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04 (from TI SDK). So I thought this should be a correct pair? Cause the non-QML application remote debugging on the embedded device already works in contrast!



  • To further investigate the problem I've set up a 2nd virtual machine with Ubuntu 11.10 guest with Qt libraries 4.7.2 for the embedded device kit (installed from ti-sdk-am335x-evm-05.04.00.00). Qt Creator version is still 2.7.0.

    When I start remote debugging, the application output shows another problem this time:
    @Process /opt/firstqml/bin/firstqml created; pid = 1951
    Listening on port 10000
    Remote debugging from host 192.168.0.110
    Qml debugging is enabled. Only use this in a safe environment!
    "QDeclarativeDebugServer: Ignoring"-qmljsdebugger=port:10001,block". Remote debugger plugin has not been found."
    Killing all inferiors@

    How can I solve this issue? I wasn't able to find a proper solution so far...



  • Very interesting.
    My guess is that you haven't deployed the debugger plugin.
    I have to test it by myself on my board.
    I will check at home on my target.



  • I'm new to Linux development :)
    What do you mean with "deploy the debugger plugin" and how can I do that?
    Thanks!



  • Hi all!

    I got some additional information regarding my problem. When I try to start the application (Ctrl+R) instead of debugging it (F5) I basically see the same error from the application output:

    @/home/root/firstqml: symbol lookup error: /home/root/firstqml: undefined symbol: _ZN28QDeclarativeDebuggingEnablerC1Ev@

    As it makes no difference if I use the Release or the Debug build configuration I think it is a fundamental problem with the Run/Deployment options and not a debugging issue in fact?!


Log in to reply
 

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