Как настроить кросс-платформенный набор инструментов отладки gdbserver / gdb для приложений qt и использовать его в qt creator? - PullRequest
0 голосов
/ 15 апреля 2019

Введение

Я использую машину с Windows 10 для разработки набора библиотек и приложений qt.

Эти библиотеки и приложения предназначены для использования на архитектурах x86 и arm, а также в средах Windows и Linux.

Однако некоторые библиотеки или приложения имеют смысл только при использовании на конкретном armhf встроенном устройстве Linux.

Теперь я остановлюсь на этом сценарии использования.

Я хочу отладить встроенное приложение на цели armhf с моей машиной Windows. Процесс должен быть максимально автоматизирован.

Текущий рабочий день

  • Я компилирую свои библиотеки на машине для разработки для Windows и запускаю там тесты модулей вручную.
  • Если все идет хорошо, я фиксирую источники.
  • Мои конвейеры сборки начнут работать на нашем сервере сборки, они
    • Компиляция для linux-x86 и armhf
    • Запуск модульных тестов на linux-x86
    • Сборка документов
    • Архивация на нашем файловом сервере
    • Вставить сборку на цель (через мой компьютер с Windows)

Доступные инструменты

  • Qt создатель (windows)
  • Среда сборки Docker, содержащая целевой набор инструментов, а также библиотеки Qt, для которых я создаю свои собственные библиотеки и приложения.
  • Подсистема Windows для Linux

Что я сделал до сих пор

Я уже успешно собрал gdb-сервер для своей цели, используя среду сборки Docker.

Я создал QT, мои собственные библиотеки и мое приложение для цели с CONFIG+=debug.

Я выполнил LD_LIBRARY_PATH=/some/path gdbserver :1234 <executable> на цели, которая подтвердила, что она работает. Ручное соединение с windows gdb, поставляемым с qt, показало, что кажется, что он не работает вместе, потому что исполняемому файлу gdb нужна цель, установленная на arm.

Верно ли мое предположение, что мне нужно каким-то образом создать исполняемый файл gdb для windows, соответствующий цели gdbserver?

У меня есть набор инструментов для сборки цели в контейнере Docker, но как я могу использовать это для создания исполняемого файла Windows? Похоже, я должен использовать Mingw для этого и положить его в свой док-контейнер. Но даже тогда я понятия не имею, как на самом деле собрать с ним GDB, чтобы он прекрасно работал с GDB-сервером, созданным набором инструментов arm.

Я также проверил настройки удаленной отладки в графическом интерфейсе qt creator, где, по-видимому, мне нужно указать путь к (локальному) исполняемому файлу, который я хочу отлаживать. Но как это будет работать на моей машине с Windows, поскольку исполняемый файл был создан для другой архитектуры? Я предполагаю, что это не будет работать на окнах.

Кроме того, я вижу запись для порта gdbserver здесь в графическом интерфейсе, но не для его IP-адреса.

В целом, я немного растерялся и надеюсь на полезные советы.

Заранее спасибо

...