ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Отладка в QT Creator  (Прочитано 5259 раз)

0 Пользователей и 1 Гость просматривают эту тему.

oev

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 47
Отладка в QT Creator
« : 22 Декабря, 2014, 15:32:16 »

Доброго всем времени суток!

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

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

Уверен, что многие пишут в QT Creator. Может быть кто-то сталкивался!?
Записан

Ziminets

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 64
Re: Отладка в QT Creator
« Ответ #1 : 22 Декабря, 2014, 18:07:49 »

Программу компилируете в debug-режиме? В release точки останова не работают.
У меня получилось добиться только остановки программы, а после останова связь с gdb-сервером сразу же рвалась и продолжить выполнение программы было невозможно. Так что я давно плюнул на это дело и пользуюсь в основном qDebug()  :-)
Записан

oev

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 47
Re: Отладка в QT Creator
« Ответ #2 : 23 Декабря, 2014, 10:45:32 »

)))
В общем-то наверно симптомы у нас схожие. Конечно я собираю  в Debug режиме. qmake собирает make файл с ключом -g. Но разницы никакой. Я плюнул уже на графику и пытаюсь отдебажить хотя бы "Hello world"  в консоль. Пока безрезультатно
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Отладка в QT Creator
« Ответ #3 : 23 Декабря, 2014, 14:17:35 »

Использовал gdb на Тионе, без gdbserver. Отлаживал программу без Qt.
Точки останова работали.
Записан

oev

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 47
Re: Отладка в QT Creator
« Ответ #4 : 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?)

Что с ней делать, я пока не знаю. Скорее всего это ключ к разгадке
Записан

oev

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 47
Re: Отладка в QT Creator
« Ответ #5 : 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"
Записан

oev

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 47
Re: Отладка в QT Creator
« Ответ #6 : 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
Записан