Способы отладки#
Часто возникает потребность в удаленной отладки приложений, запущенных на планшете или телефоне. Далее будет рассмотрена удаленная отладка приложений с архитектурами amd64 и arm64.
1. Удаленная отладка приложения с архитектурой amd64#
1.1. Установка дополнительных пакетов#
Устанавливаем на удаленной машине gdbserver
sudo apt install gdbserver
1.2. Настройка QtCreator#
Добавляем удаленное устройство (Инструменты/Параметры…/Устройства)
Добавляем комплект для удаленного устройства (Инструменты/Параметры…/Комплекты). В поле «Устройство» указываем добавленное устройство.
1.3. Сборка пакета с отладочной информацией и его установка#
Собираем пакет с отладочной информацией
DEB_BUILD_OPTIONS='nostrip noopt debug' dpkg-buildpackage -uc -us
В данном случае отладочная информация не будет находиться в отдельном пакете
Устанавливаем пакет(ы) на хостовую и удаленную машины
1.4. Отладка#
На удаленной машине:
Подключаемся gdbserver-ом к процессу, который нужно отладить
sudo gdbserver :12345 --attach $(pidof <имя процесса>)
На хосте:
Запускаем QtCreator из папки с исходными текстами
Запускаем отладку (Отладка/Начать отладку/Подключиться к серверу отладки…)
2. Удаленная отладка приложения с архитектурой arm64#
2.1. Установка дополнительных пакетов#
Устанавливаем на удаленной машине gdbserver
sudo apt install gdbserver
На хосте устанавливаем gdb-multiarch
sudo apt install gdb-multiarch
2.2. Настройка QtCreator#
Добавляем удаленное устройство (Инструменты/Параметры…/Устройства)
Добавляем отладчик
Добавляем комплект для удаленного устройства (Инструменты/Параметры…/Комплекты). В поле «Устройство» указываем добавленное устройство. В поле «Отладчик» указываем добавленный отладчик.
2.3. Подготовка chroot-a#
2.4. Сборка пакета с отладочной информацией и его установка#
Собираем пакет с отладочной информацией в chroot-e
DEB_BUILD_OPTIONS='nostrip noopt debug' dpkg-buildpackage -uc -us
В данном случае отладочная информация не будет находиться в отдельном пакете
Устанавливаем пакет(ы) в chroot и на удаленную машину
2.5. Отладка#
На удаленной машине:
Подключаемся gdbserver-ом к процессу, который нужно отладить
sudo gdbserver :12345 --attach $(pidof <имя процесса>)
На хосте:
Запускаем QtCreator из папки с исходными текстами
Запускаем отладку (Отладка/Начать отладку/Подключиться к серверу отладки…). В поле «Локальная программа» указываем программу из chroot-a. В поле «Переопределение SysRoot» указываем подготовленный chroot.