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 с указанием пути к вашей библиотеке.