Russian Qt Forum
Ноябрь 23, 2024, 04:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отладка и просмотр исходного кода Qt в Qt Creator [решено]  (Прочитано 13817 раз)
kamil
Гость
« : Январь 28, 2016, 18:17 »

Я хотел бы иметь возможность во время отладки в Qt Creator видеть исходный код Qt, ставить брекпойнты, и, по возможности, использовать follow symbol under cursor с классами Qt.
Вроде как для этого нужно собрать qt из исходников, в конфигураторе указав -debug. Что делать дальше? Как настроить дабаггер, чтобы он работал видел исходные файлы? Можно ли будет смотреть символы Qt?
« Последнее редактирование: Январь 30, 2016, 21:13 от kamil » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Январь 28, 2016, 19:50 »

Та вроде ничего не надо дополнительно ему настраивать.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Bepec
Гость
« Ответ #2 : Январь 28, 2016, 20:31 »

Пути указать к исходникам. И всё будет.
Записан
kamil
Гость
« Ответ #3 : Январь 29, 2016, 00:14 »

Да, сейчас попробую, докомпилирую только
Записан
kamil
Гость
« Ответ #4 : Январь 29, 2016, 02:43 »

Пути указать к исходникам. И всё будет.


А где именно? В настройках отладчика?
Записан
Bepec
Гость
« Ответ #5 : Январь 29, 2016, 12:11 »

Ну в QtCreator я не лез с такими проблемами, я пользовался Visual Studio. А там просто в настройках IDE указываешь папку с include и всё цепляется автоматом.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Январь 29, 2016, 12:48 »

Цитировать
In the QtCreator options, under Debugger->General you need to click on "Add Qt sources...". Then you need to select C:\QtSDK\QtSources\4.8.0. I was originally making the mistake of selecting C:\QtSDK\QtSources\4.8.0\src - which obviously was failing.

Once you OK out of the dialog you should be able to debug into the Qt source code in QtCreator.

отсюда: https://forum.qt.io/topic/5698/qt-creator-view-and-debug-into-qt-sources/10

PS: А самому гуглить не получается что-ли? Я не понимаю лень такого рода...
Записан

ArchLinux x86_64 / Win10 64 bit
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #7 : Январь 29, 2016, 16:20 »

Из совсем свежего: http://www.prog.org.ru/index.php?topic=29541
Там всё уже написано.
Записан
kamil
Гость
« Ответ #8 : Январь 30, 2016, 02:06 »

Цитировать
In the QtCreator options, under Debugger->General you need to click on "Add Qt sources...". Then you need to select C:\QtSDK\QtSources\4.8.0. I was originally making the mistake of selecting C:\QtSDK\QtSources\4.8.0\src - which obviously was failing.

Once you OK out of the dialog you should be able to debug into the Qt source code in QtCreator.

отсюда: https://forum.qt.io/topic/5698/qt-creator-view-and-debug-into-qt-sources/10

PS: А самому гуглить не получается что-ли? Я не понимаю лень такого рода...

Да, я уже находил эту ссылку, но похоже что для Qt Creator под Mac немного отличается. У меня нет кнопки add qt source, и я долго не мог понять что прописывать в source path.
Я пытался вручную прописывать:
q:\5_workdir\w\s\qtbase -> /Users/kamil/Downloads/qt5.5.1/qtbase
но это не увенчались успехом.
При попытке step into в qt код, он никуда не идет, и если попытаться посмотреть на фанкцию из стека вызовов, попадаешь в дизассемблер.
Есть идеи?
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #9 : Январь 30, 2016, 09:23 »

> Есть идеи?

Посмотри исходники креатора, в плане того куда он пишет установки пути сорцов и впиши вручную.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #10 : Январь 30, 2016, 14:04 »

Найти отладочную версию любой so из состава Qt, посмотреть на её "внутренности", найти в ней строку вида "work/build/qt5_workdir/w/s" (или как там в MacOS оно выглядит) и сопоставить ей путь к папке с реальными исходниками, т.е. к папке, родительской по отношению к qtbase. Если в QtCreator for MacOS нет стандартного способа это сделать, то может симлинки соответствующие создать на уровне файловой системы?
Записан
kamil
Гость
« Ответ #11 : Январь 30, 2016, 21:01 »

В so файлах было q:\qt5_workdir\w\s, но с первого раза не отлаживалось.
Не до конца понял, почему с первого раза с q:\qt5_workdir\w\s не заработало, но после пересборки работает. До этого собирал с ключом -debug-and-release, возмоно из-за этого.

Рецепт на всякий случай:

1. Качаем и собираем Qt из исходников. Все нормально расписано тут: http://doc.qt.io/qt-5/build-sources.html, единственное для конфигуратора, я использовал следующие настройки:
Код:
./configure
-debug
-no-framework
-opensource
-confirm-license
-prefix ~/Qt/5.6
-nomake examples
-nomake tests
-skip qtactiveqt
-skip qtandroidextras
-skip qtcanvas3d
-skip qtconnectivity
-skip qtdeclarative
-skip qtenginio
-skip qtgraphicaleffects
-skip qtlocation
-skip qtmacextras
-skip qtquick1
-skip qtquickcontrols
-skip qtscript
-skip qtsensors
-skip qttranslations
-skip qtwayland
-skip qtwebchannel
-skip qtwebengine
-skip qtwebkit
-skip qtwebkit-examples
-skip qtwebsockets
-skip qtwinextras
-skip qtx11extras
-skip qtxmlpatterns

Я отключил практически все, кроме того, что мне было нужно: qtbase, qtserial, qtsvg, qtmultimedia, без отключения всего ненужного, скорость сборки возрастет существенно.

2. Добавляем версию Qt в Build & Run -> Qt Verisions:


3. Создаем кит(? не знаю как по-русски правильно) в Build & Run -> Kits:


4. В настройках Debugger ставим в соответствие q:\qt5_workdir\w\s ->/Users/kamil/Downloads/qt-everywhere-opensource-src-5.5.1

Где /Users/kamil/Downloads/qt-everywhere-opensource-src-5.5.1 это место, где у вас лежат исходники, из которых вы собирали Qt.
Что за sourse path - q:\qt5_workdir\w\s понятия не имею, было бы интересно узнать, что это за путь в виртуальной машине (?), нужно ли это знать, и, елси нужно, где про это можно прочитать.

5. В принципе все, можно ставить брекпойнт, и делать step into. Должно сработать.

Если нужно чтобы qtcreator видел символы qt, и мог по ним проходить по нажатию на f2 - нужно чтобы соответствующие файлы были в дереве проектов. Для этого можно, например, открыть qtbase.pro, что в исходниках (или любой другой нужный вам модуль). Открывать весь qt.pro не советовал бы - долговато.
« Последнее редактирование: Январь 30, 2016, 21:06 от kamil » Записан
kamil
Гость
« Ответ #12 : Январь 31, 2016, 03:14 »

И еще. Возможно глупый вопрос. Сконфигурировал я, допустим, qt с опцией, -debug-and-release. Собрал и установил. Подключил qt к qt creator.
Дальше чтобы отлаживать qt, нужно ли что-то дополнительно делать? Просто в таком случае у меня отладчик в qt код не идет, только в дизассемблер.

Отладчик идет в qt код только если сконфигурировать код с -debug -no-framework. А вот с -debug-and-release ни в какую.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #13 : Январь 31, 2016, 18:04 »

в свойствах проекта надо галочку про дебаг либы ставить
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.147 секунд. Запросов: 23.