Qt Creator 2.7.1 и Qt 4.8.4 не могут удаленно отлаживать библиотеку

Используя Qt Creator 2.7.1 и Qt 4.8.4, я создал библиотеку Qt и простое приложение Qt, которое динамически связывается с этой библиотекой. Я пытаюсь удаленно развернуть и отладить мое приложение и войти в функции библиотеки, когда я их вызываю. Я могу успешно устанавливать контрольные точки и отлаживать удаленно, но я не могу войти в библиотечные функции, используя отладчик ( gdb). Когда я впервые запускаю приложение удаленно, используя QtCreator в режиме отладки, меня встречают следующие предупреждения:

Could not load shared library symbols for 7 libraries, e.g. libcustom-stuff.so.1.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?

Мой отладчик настроен с использованием QtCreator, как показано на этих изображениях (обратите внимание, что я переключил 'Target Path' и 'Path' на изображении № 3, но это не помогло:введите описание изображения здесьвведите описание изображения здесьвведите описание изображения здесь

Мой "Комплект" настроен следующим образом:

введите описание изображения здесь

В "Журнале отладки" в Qt Creator я ввел "Команду":

info sharedlibrary

На что я получил ответ:

>~"From        To          Syms Read   Shared Object Library\n"
>~"0x400007e0  0x40011bf0  Yes         /home/user/proj/output/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/lib/ld-linux.so.3\n"
>~"                        No          libcustom-stuff.so.1\n"
>~"0x4006d018  0x400d7124  Yes         /home/user/proj/output/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libQtDBus.so.4\n"
>~"0x401065c4  0x4013dd18  Yes         /home/user/proj/output/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libQtXml.so.4\n"
>~"0x40172430  0x4024c1b4  Yes         /home/user/proj/output/buildroot/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/libQtNetwork.so.4\n"

Я также гарантировал, что библиотека и приложение были построены с:

CONFIG+=declarative_debug

На панели "Compile Output" для библиотеки и приложения я вижу флаг "-g".

Они оба находятся в одном и том же каталоге в файловой системе, так что же происходит? Как я могу отлаживать и устанавливать точки останова в приложении, но не вмешиваться в вызовы библиотеки? Любые идеи с благодарностью.

ОБНОВИТЬ:

Согласно предложению kikeenrique, я попытался загрузить символы отладки с моего Ubuntu Host (не цели ARM):

GNU gdb (Ubuntu/Linaro 7.4-0~69~lucid1) 7.4
Copyright (C) 2012 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 "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Welcome to Fluke GDB Init Script for QtCreator
Reading symbols from /home/user/proj/output/exported-nfs/home/user/libcustom-stuff.so.1.0.0...done.
(gdb)

Кажется, GDB может загрузить символы по крайней мере..

1 ответ

Решение

Используете ли вы другую архитектуру для удаленного приложения?

Если они разные, вам нужно будет использовать один и тот же сервер GDB и клиентский архив.

Попробуйте установить LD_LIBRARY_PATH в вашем проекте ->build & Run->build build с указанием пути к вашей библиотеке.

Другие вопросы по тегам