Просмотр сообщений
|
Страниц: [1] 2 3 4
|
1
|
Qt / Установка, сборка, отладка, тестирование / Re: Самособранный QtCreator 4.2 не работает в режиме отладки
|
: Декабрь 31, 2017, 00:43
|
а зачем собирать старую версию креатора ?
Тут от последней версии не сильно далеко. Так не всегда новое лучше старого. Зачастую последние версии вообще не хотят собираться. Эта собралась и в релизе все работает. В debug версии работать не хочет, подозреваю чего то не хватает. Чего не знаю поэтому спрашиваю, может кто сталкивался. Кто нибудь вообще собирал QtC и использовал отладчик? Так понимаю все его собирают из командной строки. Сам так делал когда нужно было получить MinGw версию.
|
|
|
2
|
Qt / Установка, сборка, отладка, тестирование / Самособранный QtCreator 4.2 не работает в режиме отладки
|
: Декабрь 30, 2017, 00:50
|
Уважаемые, Здравствуйте. Всех с наступающим НГ, поменьше багов и побольше здоровья. Собираю из исходников QtCreator 4.2. Инструментарий MinGW Qt 5.6 и собираю это все в том же QtCretaor 4.2 (сами себя воспроизводим). В релиз все замечательно работает. Когда запускаю отладку то программа вылетает по Segmentation fault. Вылетает на d = new Internal::JsExpanderPrivate;
Сам class JsExpanderPrivate class JsExpanderPrivate { public: QJSEngine m_engine; }; Что то с отладкой мне явно не везет. Кто нибудь собирал QtC в самом QtC и использовал отладчик?
|
|
|
4
|
Qt / Qt Embedded / Re: Qtcreator ошибка по удаленной отладке embedded Linux ARM
|
: Октябрь 25, 2017, 21:49
|
ld-linux-armhf.so.3 входит в пакет libc6:armhf Пробовал установить, но у меня он самой последний версии и стоит Погуглил есть решение ln -s /lib/ld-linux-armhf.so.3 ${D}/lib/ld-linux.so.3
Я правильно понимаю что так делается ссылка на ld-linux.so.3 вместо ld-linux-armhf.so.3 Если это так то, что это даст, судя по логу отладки у меня ld-linux-armhf.so.3 берется из моего sysroot.
|
|
|
5
|
Qt / Qt Embedded / Re: Qtcreator ошибка по удаленной отладке embedded Linux ARM
|
: Октябрь 25, 2017, 20:39
|
2. В QtC в Kit нужно указать sysroot путь также. 3. В *.pro файле приложения добавить install target, и желаемый путь, куда на таргете будет заливаться приложение. 4. Ну и посмотреть еще раз в настройки QtC в RemoteLinux device, на предмет корректного ip, логина, пароля к таргету (жмакнуть кнопку test). 5. И еще, gdb должен быть собран с поддержкой Python (гугли).
Это все сделанно, без поддержки Python отладчик вообще не запустится выругается сто нет Питона. 1. В QtC есть меню Window -> Views -> Debugger Log, где нужно поставить галочку и смотеть потом что там не так идет.
Вот за эту наводку отдельное СПАСИБО немного больше информации стало. Вот что нашел внутри лога dCALL: RUN ENGINE <68-exec-run >=thread-group-started,id="i1",pid="6335" sСоздана группа потоков i1 dПолучено уведомление от pid 6335 >=thread-created,id="1",group-id="i1" sПоток 1 создан >=library-loaded,id="/lib/ld-linux-armhf.so.3",target-name="/lib/ld-linux-armhf.so.3",host-name="C:/Qt/LinuxARM/qt5.6.2-arm-linaro-4.8.2/arm-linux-gnueabihf/sysroot/lib/ld-linux-armhf.so.3",symbols-loaded="0",thread-group="i1" sБиблиотека /lib/ld-linux-armhf.so.3 загружена >68^running dNOTE: ENGINE RUN AND INFERIOR RUN OK sВыполняется. dState changed from EngineRunRequested(7) to InferiorRunOk(11) [master] dINFERIOR STARTED sПриложение запущено >*running,thread-id="all" dNOTE: INFERIOR STILL RUNNING IN STATE InferiorRunOk.
>~"\nProgram received signal " >~"SIGSEGV, Segmentation fault.\n"
>~"0xb6fd9dde in ?? () from C:/Qt/LinuxARM/qt5.6.2-arm-linaro-4.8.2/arm-linux-gnueabihf/sysroot/lib/ld-linux-armhf.so.3\n"
>*stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",frame={addr="0xb6fd9dde",func="??",args=[],from="C:/Qt/LinuxARM/qt5.6.2-arm-linaro-4.8.2/arm-linux-gnueabihf/sysroot/lib/ld-linux-armhf.so.3"}, thread-id="1",stopped-threads="all",core="3" dNOTE: INFERIOR SPONTANEOUS STOP sОстановлено. dState changed from InferiorRunOk(11) to InferiorStopOk(14) [master] <69importPlainDumpers off dHANDLING SIGNAL SIGSEGV sОстановлено: Segmentation fault (сигнал SIGSEGV).
Получается причина краха lib/ld-linux-armhf.so.3 0xb6fd9dde in ?? () from C:/Qt/LinuxARM/qt5.6.2-arm-linaro-4.8.2/arm-linux-gnueabihf/sysroot/lib/ld-linux-armhf.so.3\n"Это библиотека из Linux на плате. Cинхронизировал sysroot не помогло. Так и что с этим делать. Интересно к какому пакту она относиться. Ищем дальше
|
|
|
6
|
Qt / Qt Embedded / Re: Qtcreator ошибка по удаленной отладке embedded Linux ARM
|
: Октябрь 25, 2017, 14:17
|
Поставил QtC4.4.1 результат тот же. Пробовал играться с разными опциями GDB в параметрах.
Не работает. Проверил образ на целевую платформу заливается. Но при начале отладки вываливается окно с дизассемблером и сегментатион фаулт.
Так понимаю проблема с QtCreator
Как-то игрался со сборкой для голого железа для STM32, там тоже была проблема. После завершения отладки QtC падал но потом нашел решилось (уже не вспомню) какой то галкой в параметрах. Галки тупо все перебрал.
|
|
|
7
|
Qt / Qt Embedded / Re: Qtcreator ошибка по удаленной отладке embedded Linux ARM
|
: Октябрь 25, 2017, 12:20
|
Там ничо сложного.
Спасибо, так заработало, еще не разбирался с нюансами да и нужно из QtC запускаться. Самое главное что связка работает. Теперь сижу и себе думаю что-то не так. Может я плохо читал, но нигде не видел упоминаний, что нужно в QtC в параметрах GDB что то прописывать. Прописал только в закладке Устройства (свою целевую плату прописал). А вопрос в том кто удаленно gdbserver на плате запускать должен. Думал что все автоматом должно или как? Пошел в гугл
|
|
|
9
|
Qt / Qt Embedded / Re: Qtcreator ошибка по удаленной отладке embedded Linux ARM
|
: Октябрь 25, 2017, 10:06
|
А попробуй сначала ручками попробовать удаленную отладку сделать из консоли gdb. И если там программа не будет падать, значит пиши баг-репорт.
PS: И вообще, на твоем бы месте я обновил бы QtC на последнюю версию (если у тебя не последняя).
Пока не знаю как это делается, нужно почитать доки. Представляю, что нужно запустить gdb-arm-linux-gnueabihf.exe Залить программу на тагет и сделать старт. Если можно пример На данный момент QtCreator 4.2, с ним работаю. Но gdb собирал из исходников QtC3.5, почему то от QtC4.2 gdb криво собрался. Сама сборка всей это кухни занимает много времени где то с час.
|
|
|
11
|
Qt / Qt Embedded / Re: Qtcreator ошибка по удаленной отладке embedded Linux ARM
|
: Октябрь 24, 2017, 23:47
|
Нашел одну не увязку. У меня стоят два комплекта MinGw C:\Qt\MinGw_28_03_2016\bin>"g++.exe" -v Using built-in specs. COLLECT_GCC=C:\Qt\MinGw_28_03_2016\bin\g++.exe COLLECT_LTO_WRAPPER=c:/qt/mingw_28_03_2016/bin/../libexec/gcc/mingw32/4.9.3/lto-wrapper.exe Target: mingw32 Configured with: ../src/gcc-4.9.3/configure --build=x86_64-pc-linux-gnu --host=mingw32 --prefix=/mingw --disable-win32-registry --target=mingw32 --with-arch=i586 --enable-languages=c,c++,objc,obj-c++,fortran,ada --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --enable-libstdcxx-debug --with-tune=generic --enable-nls Thread model: win32 gcc version 4.9.3 (GCC)
второй COLLECT_LTO_WRAPPER=C:/Qt/Qt5.6.2/Tools/mingw492_32/bin/../libexec/gcc/i686-w64-mingw32/4.9.2/lto-wrapper.exe Target: i686-w64-mingw32 Configured with: ../../../src/gcc-4.9.2/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw492/i686-492-posix-dwarf-rt_v3-rev1/mingw32 --with-gxx-include-dir=/mingw32/i686-w64-mingw32/include/c++ --enable-shared --enable-static --disable-multilib --enable-languages=ada,c,c++,fortran,objc,obj-c++,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-isl-version-check --disable-cloog-version-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw492/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw492/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw492/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw492/prerequisites/i686-w64-mingw32-static --with-cloog=/c/mingw492/prerequisites/i686-w64-mingw32-static --enable-cloog-backend=isl --with-pkgversion='i686-posix-dwarf-rev 1, Built by MinGW-W64 project' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -I/c/mingw492/i686-492-posix-dwarf-rt_v3-rev1/mingw32/opt/include -I/c/mingw492/prerequisites/i686-zlib-static/include -I/c/mingw492/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -I/c/mingw492/i686-492-posix-dwarf-rt_v3-rev1/mingw32/opt/include -I/c/mingw492/prerequisites/i686-zlib-static/include -I/c/mingw492/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe -L/c/mingw492/i686-492-posix-dwarf-rt_v3-rev1/mingw32/opt/lib -L/c/mingw492/prerequisites/i686-zlib-static/lib -L/c/mingw492/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware' Thread model: posix gcc version 4.9.2 (i686-posix-dwarf-rev1, Built by MinGW-W64 project)
Момент в следующем у меня в MinGw4.9.3 стоит msys в котором я производил все действия, но путь к компилятору прописан для MinGw4.9.2 которым я все и собираю. Причем для Фреймворка Linux ARM MinGw нужен на начальном этапе только для сборки qmake. Сейчас пересобираю gdb MinGw4.9.2 посмотрю что это мне даст. Но есть вопрос я не случайно привел выхлоп с двух компиляторов. Я на это никогда не обращал внимание, но тут то видно что тагеты и треды разные. В одном случае MinGw4.9.3 Target: mingw32 Thread model: win32 В другом случае MinGw4.9.2 Target: i686-w64-mingw32 Thread model: posix posix вроде как для линукса, но именно этот компилятор идет в комплекте с моим предустановленным Qt5.6.2 на хосте с Win причем я импользуюсь. Может кто мне объяснить в чем отличия? И на что это влияет?
|
|
|
12
|
Qt / Qt Embedded / Qtcreator ошибка по удаленной отладке embedded Linux ARM
|
: Октябрь 24, 2017, 21:12
|
Уважаемые, Здравствуйте. Собрал Qt5.6.2 для кросс компиляции в Windows, целевая платформа Linux ARM. Библиотеки собраны и установлены в release и debug. В частности плата Orangepi Pc plus, в качестве Linux Armbian. Все получилось компилирую в win запускаю на плате. Запускаться и работает на самой плате, ткже если нажать запуск в Qtcreator и из терминала SmartTTY с пробросом на мою хост машину в Win. Но что-то не могу победить отладку. В Qtcretor жму начать отладку на плату программа вроде как устанавливается. И вроде как начинает работать. Затем вылетает окно. Приложение остановлено, так как получило сигнал от операционной системы. Сигнал: SIGSEGV Назначение: Segmentation fault Типовая ошибка если где-то в программе что не так сделал. Для чистоты эксперимента создал с нуля главное окно, там такая же картина. По самим отладчикам думал дело в них Собрал gdb отладчик из исходников от Qtcreator-3.5 Причем собрал gdb-arm-linux-gnueabihf.exe Там есть момент, кто не в курсе В файле /qtcreator/dist/gdb/Makefile.mingw Нужно добавить еще одну цель targets=arm-none-eabi arm-none-linux-gnueabi i686-pc-mingw32 arm-linux-gnueabihf
Тогда соберется еще один отладчик gdb-arm-linux-gnueabihf.exe. Который в теории подходит, но увы не работает система. Замучился немного, таки очень непросто было собрать сам Фреймворк для кросс компиляции в win. Может по отладке кто чего подскажет? Думаю может не подходит gdb что использую. Перепробовал разные увы эффекта нет.
|
|
|
13
|
Qt / Qt-инструментарий / Re: [РЕШЕНО] qbs и правила (Rule)
|
: Февраль 24, 2017, 01:43
|
Подниму тему уж очень созвучна с тем что мне нужно.
Как запустить Rule без выноса ее в отдельный модуль.
Есть Product в котором компилируем кучку фалов и получаем столько же объектников. Тут все ок. Но затем мне нужно взять бинарник сделать из него объектник и скормить его (+ скомпилированные файлы ) линкеру.
Вот тут затыка причем со странными глюками.
1) Rule само по себе не хочет работать нужен вход и выход, как говорили, если выхода нет, то и правило не сработает. 2) Если я его запускаю (пока просто копирую файл) то проект не хочет прособираться (директорию не может очистить) причем иногда линкер не находит некотрые файлы. Они просто не скомпилировались.
Убираю это правило все Ок.
Вообще есть ли годное описание qbs? Тяжело понять как это все работает.
|
|
|
14
|
Qt / Вопросы новичков / Обработка 2D изображений, нужен совет.(Gerber форм&
|
: Ноябрь 11, 2016, 08:56
|
Здравствуйте, Уважаемые. Есть формат файла Gerber. Применяется для вывода на фотопринтеры. Нужно при изготовлении печатных плат. По сути в формате, топология печатной платы описывается двумя парами координат между которыми проводиться линия. Есть еще апертуры и прочее, но пока это не важно Да данный момент я имею файлы в которых, линиями с парой координат, задана топология печатной платы. Но суть не в этом. Мне нужно это все отобразить не экране. Это я сделал использовал QGraphicsView, QGraphicsScene, итемы свои пока не делал, обошелся простыми линиями. Вопрос в следующем мне нужно найти границы проводников на плате. Вот тут я и остановился. Не знаю как это сделать лучше. Вроде как нужно взять то что вывели не экран и обойти по кругу найдя полигон. пробовал сделать что то типа QList<QPoint> pnList; QPoint pn;
for(int x = 0; x < scene->width();x++) { for(int y = 0; y < scene->height();y++) { if(itemAt(x,y) == 0) { pn.setX(x); pn.setY(y); pnList.push_back(pn); } } }
Здесь в pnList будет список координат которые не относятся к итемам. Значит это будут пустые места. В принципе это работает, но страшно медленно. Еще есть вопросы к трансформации координат. С этим вопросом я еще не разобрался, но в файле Gerber разрешение минимум 3 знака после запятой. Другими словами разрешение 0.001 мм и это тоже нельзя потерять. Мне нужен совет как это можно сделать. Есть ли в природе библиотеки для обработки изображений которые можно использовать.
|
|
|
15
|
Qt / Вопросы новичков / Re: Снифер COM порта и не только. Win7 - WinXP
|
: Август 14, 2016, 22:31
|
Спасибо, видел я его для быстрого мониторинга пойдет, но нужно свое решение. И это решение насколько объяснили ниже, не очень простое в реализации. Если интересует именно самому написать сниффер - то надо читать про написание фильтр-драйверов в Windows + про WinAPI по SC manager. Помню, как-то давно тоже интересовался этой темой и нашел пример с исходниками простецкого WDM драйвера и кода по его загрузке и "прицеплянию" к устройству.
Интересует, уже начал читать по теме, но пока в голове бардак, никак не сложу логическую последовательность. Все перемешано Win XP - 7. Причем для Win7 инфы меньше. Короче не знаю осилю ли эту тему, тема не главная так для домашнего использования. В принципе, написать самому все это несложно. Сложность только в подписывании драйвера фильтра, т.к. сертификат то платный.
Насколько понимаю можно в тестовом режиме поставить свой драйвер. Также можно попробовать длл-инъекцию с подменой функций CreateFile, WriteFile, ReadFile и прочих специфичных, но я хз. в результате.
А это как делается?
|
|
|
|
|