Russian Qt Forum
Ноябрь 25, 2024, 04:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Плагин BareMetal с типом Generic  (Прочитано 5540 раз)
arhiv6
Новичок

Offline Offline

Сообщений: 2


Просмотр профиля
« : Март 01, 2023, 10:42 »

Добрый день.

В настройках BareMetal можно создать провайдер сервера отладки с типом Generic или OpenOCD. При использовании типа OpenOCD при отладке QtCreator сначала запускает экземпляр openocd, потом запускает gdb и начинает отлаживать - это всё прекрасно работало всегда. Понадобилось мне подключиться к стороннему серверу отладки - я его запускаю отдельно сам. Создал тип провайдера Generic, указал адрес хоста и порт, к которым должен подключаться gdb. Но QtCreator при старте отладки упорно пытается запустить сервер, которого нет, и не справившись с этим даже не пытается запустить gdb.

Посмотрел код классов родительского GdbServerProvider и наследников GenericGdbServerProvider (и OpenOcdGdbServerProvider для сравнения). У родителя есть функция GdbServerProvider::targetRunner, которая возвращает заглушку GdbServerProvider::command(). У наследника OpenOcdGdbServerProvider::command() возвращается команда запуска openocd. У GenericGdbServerProvider функции command() нету (по идее и не нужна), но QtCreator зачем-то вызывает заглушку родительского класса... Это же явный баг?

Пока что  сделал по-простому - добавил для GenericGdbServerProvider настроек: путь к исполняемому файлу и аргументы для него (ссылка на коммит). В принципе, это работает (и даже чем-то удобно - теперь я запускаю сервер не в отдельной консоли, а QtCreator делает это сам. Правда он его почему-то не останавливает). Но, когда хочу подключиться к удаленному серверу, всё-равно приходится указывать путь к любому исполняемому файлу, лишь бы QtCreator не споткнулся на его запуске и запустил gdb.

Вопрос: я что-то делаю не так и Generic провайдер нужно использовать как-то по другому? Если это баг, то как правильно отучить QtCreator запускать несуществующий сервер?
Записан
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #1 : Март 01, 2023, 21:22 »

Лучше сразу указывать версии того, на чём вы всё проверяете. Ну и минимальный проект неплохо было бы.
Записан

arhiv6
Новичок

Offline Offline

Сообщений: 2


Просмотр профиля
« Ответ #2 : Март 02, 2023, 05:33 »

Прошу прощения. Версии 9.0.2 и 10-beta, OS Ubuntu 22.04.1 x64.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.103 секунд. Запросов: 22.