ЗАО «ЗЭО»

Техническая поддержка пользователей => Тион-Про28, Орион28 => Тема начата: oev от 22 Декабря, 2014, 15:32:16

Название: Отладка в QT Creator
Отправлено: oev от 22 Декабря, 2014, 15:32:16
Доброго всем времени суток!

Поставил QT для Тиона, сейчас пишу простенькие программы в QT Creator. Столкнулся с такой проблемой, что не могу отлаживать программы. Использую gcc и gdb "коробочные", т.е. те, что шли с виртуальной машиной.

Точки останова в редакторе ставятся, но на исполнение программы это никак не влияет. Также не отображается список переменных. Отладку веду удаленно через gdbserver (последовательный порт).

Уверен, что многие пишут в QT Creator. Может быть кто-то сталкивался!?
Название: Re: Отладка в QT Creator
Отправлено: Ziminets от 22 Декабря, 2014, 18:07:49
Программу компилируете в debug-режиме? В release точки останова не работают.
У меня получилось добиться только остановки программы, а после останова связь с gdb-сервером сразу же рвалась и продолжить выполнение программы было невозможно. Так что я давно плюнул на это дело и пользуюсь в основном qDebug()  :-)
Название: Re: Отладка в QT Creator
Отправлено: oev от 23 Декабря, 2014, 10:45:32
)))
В общем-то наверно симптомы у нас схожие. Конечно я собираю  в Debug режиме. qmake собирает make файл с ключом -g. Но разницы никакой. Я плюнул уже на графику и пытаюсь отдебажить хотя бы "Hello world"  в консоль. Пока безрезультатно
Название: Re: Отладка в QT Creator
Отправлено: Danila от 23 Декабря, 2014, 14:17:35
Использовал gdb на Тионе, без gdbserver. Отлаживал программу без Qt.
Точки останова работали.
Название: Re: Отладка в QT Creator
Отправлено: oev от 23 Декабря, 2014, 14:38:43
Коробочный gdb работает, равно как и gdbserver. Я тоже прекрасно тестирую программы, написанные в блокноте и собранные инструментами, которые на виртуальной машине.
Проблема именно в отладке через QT Creator. Где-то на форумах пишут, что это из-за того, что gdb не поддерживает python, но проблема скорее всего в другом.

Помимо всего в лог Creator выпадает такая вот фигня:
warning: `/usr/lib/libglib-2.0.so.0': Shared library architecture unknown is not compatible with target architecture arm.
warning: .dynamic section for "/usr/lib/libglib-2.0.so.0" is not at the expected address (wrong library or version mismatch?)
warning: `/usr/lib/libgthread-2.0.so.0': Shared library architecture unknown is not compatible with target architecture arm.
warning: .dynamic section for "/usr/lib/libgthread-2.0.so.0" is not at the expected address (wrong library or version mismatch?)
Error while mapping shared library sections:
/usr/lib/libz.so.1: No such file or directory.
warning: `/usr/lib/libgmodule-2.0.so.0': Shared library architecture unknown is not compatible with target architecture arm.
warning: .dynamic section for "/usr/lib/libgmodule-2.0.so.0" is not at the expected address (wrong library or version mismatch?)
warning: `/usr/lib/libgobject-2.0.so.0': Shared library architecture unknown is not compatible with target architecture arm.
warning: .dynamic section for "/usr/lib/libgobject-2.0.so.0" is not at the expected address (wrong library or version mismatch?)
Error while mapping shared library sections:
/usr/lib/libts-1.0.so.0: No such file or directory.
Error while mapping shared library sections:
/usr/lib/libpng.so.3: No such file or directory.
warning: `/usr/lib/libfreetype.so.6': Shared library architecture unknown is not compatible with target architecture arm.
warning: .dynamic section for "/usr/lib/libfreetype.so.6" is not at the expected address (wrong library or version mismatch?)
warning: `/usr/lib/libQtNetwork.so.4': Shared library architecture unknown is not compatible with target architecture arm.
warning: .dynamic section for "/usr/lib/libQtNetwork.so.4" is not at the expected address (wrong library or version mismatch?)
warning: `/usr/lib/libQtCore.so.4': Shared library architecture unknown is not compatible with target architecture arm.
warning: .dynamic section for "/usr/lib/libQtCore.so.4" is not at the expected address (wrong library or version mismatch?)
warning: `/lib/libpthread.so.0': Shared library architecture unknown is not compatible with target architecture arm.
warning: .dynamic section for "/lib/libpthread.so.0" is not at the expected address (wrong library or version mismatch?)

Что с ней делать, я пока не знаю. Скорее всего это ключ к разгадке
Название: Re: Отладка в QT Creator
Отправлено: oev от 24 Декабря, 2014, 17:03:56
Пока ответа у меня нет, но есть промежуточные результаты, надеюсь, так сказать, сообща решим!

Пробовал дебажить версией gdb c поддержкой python -> без положительного результата. В application output только:
"Debugging starts
Debugging has finished"

Проблема страшного предыдущего лога решилась вроде бы добавлением стартового скрипта для gdb в файле ".gdbinit"
"set solib-absolute-prefix /home/ubuntu/Projects/TionPro28/ltib/ltib/rootfs"

Поэтому из лога сейчас только есть безрезультатный:
"Debugging starts
Debugging has finished"
Название: Re: Отладка в QT Creator
Отправлено: oev от 12 Января, 2015, 14:57:11
Тема похоже подыхает, но все же расскажу, к чему я пришел.

1)Обязательно нужен gdb  с поддержкой python, потому что QT Creator генерит скрипт для него.
2)Перелопатив массу инфы с интернете, я пришел к выводу, что отсутствие нормальной отладки  - это проблема QT Creator. У меня версия  2.4.0. Скорее всего в более старших версиях такого глюка нет. Но проблема в том, что для более старшей версии QT Creator нужно много системных библиотек высоких версий, коих нет в моей сборке КФС( пишу так расплывчито, потому что время последних изысканий с Creator было у меня давно )

Мое решение:
Я перешел на Eclipse.

Использовал gdb  с поддержкой python (на всякий пожарный).
Собирать надо  с -Bstatic.
Также в ".gdbinit"  указать пути  на shared libraries,  set solib-search-path /lib
set solib-search-path /usr/lib
set solib-search-path /usr/local/Trolltech/lib
либо указать пути в графическом меню вкладки gdb Eclipse