Как заставить отлаживаемое приложение находить общие библиотеки при вызове в gdb внутри Eclipse CDT? - PullRequest
2 голосов
/ 14 мая 2010

Я пытаюсь отладить транк Firefox внутри Eclipse CDT в Linux x86_64 (Ubuntu Karmic).

Я сделал следующее:

  • Я сделал отображение пути из / в / в DevMo на панели «Источник» конфигурации Run / Debug уровня проекта.
  • Я установил / opt / Projects / obj-debug / dist / bin / firefox-bin в качестве приложения C ++ на главной панели. (Мой каталог Firefox является / opt / Projects / obj-debug)
  • Я установил рабочий каталог на / opt / Projects / obj-debug / dist / bin на панели Аргументы
  • Я установил аргументы в -no-remote -P dev на панели Аргументы
  • На панели Environment я настроил среду для добавления следующего на основе того, что делает run-mozilla.sh:
    • ADDON_PATH: / opt / Projects / obj-debug / dist / bin
    • ДИСПЛЕЙ:: 0.0
    • DYLD_LIBRARY_PATH: / opt / Проекты / obj-debug / dist / bin: / opt / Projects / obj-debug / dist / bin
    • LD_LIBRARY_PATH: / opt / Projects / obj-debug / dist / bin: / opt / Projects / obj-debug / dist / bin / plugins: / opt / Projects / obj-debug / dist / bin
    • LIBPATH: / opt / Projects / obj-debug / dist / bin: / opt / Projects / obj-debug / dist / bin
    • LIBRARY_PATH: / opt / Проекты / obj-debug / dist / bin: / opt / Проекты / obj-debug / dist / bin / components: / opt / Проекты / obj-debug / dist / bin
    • MOZILLA_FIVE_HOME: / opt / Проекты / obj-debug / dist / bin
    • NO_EM_RESTART: 1
    • NO_REMOTE: 1
    • SHLIB_PATH: / opt / Projects / obj-debug / dist / bin: / opt / Projects / obj-debug / dist / bin
  • На панели отладчика у меня есть
    • Выбранный отладчик GDB
    • Я установил для исполняемого файла gdb значение gdb, а для .gdbinit - /home/hsivonen/.gdbinit

Этого достаточно для успешного запуска Firefox с помощью Run. Тем не менее, при запуске с использованием Debug, я получаю одну строку в консоли: /opt/Projects/obj-debug/dist/bin/firefox-bin: error while loading shared libraries: libmozalloc.so: cannot open shared object file: No such file or directory

Я дополнительно попытался поместить соответствующие пути в подпапку общей библиотеки на панели отладчика, и я попытался поместить set solib-search-path /opt/Projects/obj-debug/dist/bin/components:/opt/Projects/obj-debug/dist/bin/plugins:/opt/Projects/obj-debug/dist/bin в моем .gdbinit.

Не повезло.

Что я должен сделать, чтобы общие библиотеки были найдены при отладке приложения?

1 Ответ

0 голосов
/ 04 февраля 2015

Мне часто удается успешно использовать отладчик CDT таким образом:

  1. из терминала установите рабочую среду для двоичного файла, который вы хотите отлаживать (экспорт LD_LIBRARY_PATH и т. Д.)
  2. из того же терминала , запустите затмение (затмение унаследует окружение)
  3. из eclipse, выберите «Makefile Project с существующим кодом» и импортируйте вашу папку
  4. на левой панели выберите бинарный файл и щелкните правой кнопкой мыши: Отладка как → Приложение C / C ++.
...