ЗАО «ЗЭО»
Техническая поддержка пользователей => Тион-Про28, Орион28 => Тема начата: oev от 22 Декабря, 2014, 15:32:16
-
Доброго всем времени суток!
Поставил QT для Тиона, сейчас пишу простенькие программы в QT Creator. Столкнулся с такой проблемой, что не могу отлаживать программы. Использую gcc и gdb "коробочные", т.е. те, что шли с виртуальной машиной.
Точки останова в редакторе ставятся, но на исполнение программы это никак не влияет. Также не отображается список переменных. Отладку веду удаленно через gdbserver (последовательный порт).
Уверен, что многие пишут в QT Creator. Может быть кто-то сталкивался!?
-
Программу компилируете в debug-режиме? В release точки останова не работают.
У меня получилось добиться только остановки программы, а после останова связь с gdb-сервером сразу же рвалась и продолжить выполнение программы было невозможно. Так что я давно плюнул на это дело и пользуюсь в основном qDebug() :-)
-
)))
В общем-то наверно симптомы у нас схожие. Конечно я собираю в Debug режиме. qmake собирает make файл с ключом -g. Но разницы никакой. Я плюнул уже на графику и пытаюсь отдебажить хотя бы "Hello world" в консоль. Пока безрезультатно
-
Использовал gdb на Тионе, без gdbserver. Отлаживал программу без Qt.
Точки останова работали.
-
Коробочный 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?)
Что с ней делать, я пока не знаю. Скорее всего это ключ к разгадке
-
Пока ответа у меня нет, но есть промежуточные результаты, надеюсь, так сказать, сообща решим!
Пробовал дебажить версией 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"
-
Тема похоже подыхает, но все же расскажу, к чему я пришел.
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