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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1]
1  Qt / Дополнительные компоненты / Re: Плагин BareMetal с типом Generic : Март 02, 2023, 05:33
Прошу прощения. Версии 9.0.2 и 10-beta, OS Ubuntu 22.04.1 x64.
2  Qt / Дополнительные компоненты / Плагин BareMetal с типом Generic : Март 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 запускать несуществующий сервер?
Страниц: [1]

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