Отладка динамически загружаемой библиотеки на С++ с помощью QtCreator

Я создаю приложение, которое динамически загружает плагины общих библиотек с помощью qtcreator в Linux.

Плагин создается в отдельной папке, затем копируется в основную папку плагинов приложения. Приложение ищет плагины при запуске и загружает их.

И подключаемый модуль, и исполняемый файл создаются в отдельных проектах CMake (в конфигурации отладки), которые загружаются в моем сеансе qtcreator.

Похоже, что отладчик не может связать библиотеку с файлами исходного кода. Это имеет два эффекта * Точки останова, которые я ставлю в файлах плагинов, игнорируются * Если я ставлю «точку останова кода» (т.е. asm int 3) в коде плагина, отладчик показывает мне разборку (а не исходный код).

Как я могу указать отладчику искать правильные исходные файлы?


person Louen    schedule 18.02.2016    source источник
comment
Я не думаю, что вы можете сделать то, что ожидаете (имея точки останова в исходном файле библиотеки, которые попадают в вашу предварительно скомпилированную библиотеку). Если вы хотите отладить библиотеку, вы должны запустить проект библиотеки - может быть, написать какой-нибудь модульный тест с помощью qt? В противном случае вы можете добавить некоторые подробные/распечатанные источники в свои библиотеки...   -  person floppy12    schedule 19.02.2016


Ответы (1)


Вы можете устанавливать точки останова в библиотеках на основе имен функций и т.п. Для просмотра исходного кода точек останова библиотека должна быть скомпилирована с отладочными символами (например, qmake CONFIG+=debug), а исходный код нельзя перемещать после компиляции. Я считаю, что для взлома номеров файлов и строк также требуется источник. Если у вас все еще возникают проблемы, я бы попробовал добавить исходный каталог в INCLUDEPATH или загрузить оба проекта в QtCreator во время выполнения.

person Funmungus    schedule 11.04.2016