Комментарии 8
И тут приходит мысль… А если в разрыв между GDB-client и GDB-server вставить посредника, осуществить, так сказать, MitM «атаку»? То есть, по сути, перехватить запросы, которые относятся к получению состояния потока, получить недостающую информацию от сервера и сформировать ответ клиенту?
Это все нужно что бы поддерживать threading для связки FreeRTOS и MicroBlaze?
Кто в этом случае будет GDB-client и GDB-server? Сервер вроде бы hw_server а вот кто клиент я так и не понял
Это все нужно что бы поддерживать threading для связки FreeRTOS и MicroBlaze?
Да. В общем случае — можно и другие связки, там заложен потенциал на расширение.
Кто в этом случае будет GDB-client и GDB-server? Сервер вроде бы hw_server а вот кто клиент я так и не понял
Сервер, как правильно предположили, — hw_server
.
Клиент — mb-gdb
, который запускается из Eclipse при отладке и выбранном типе отладчика "GDB", а не "System Debugger".
Первой задачей стояла реализовать просто прокси, который будет всё принимать от клиента и пересылать на сервер и так же — в обратном направлении. Снова погрузиться в дебри асинхронщины.
А клиент с сервером общаются по Remote Protocol? Там вроде бы нет асинхронщины.
Пока client не получит ответ на команду, он следующую не посылает, если только это не Remote Non-Stop режим. Клиент всегда один.
Вроде бы Asio здесь будет чересчур.
Или есть нюансы?
А клиент с сервером общаются по Remote Protocol?
Да.
Remote Non-Stop
Который, ЕМНИП, у меня сейчас не обрабатывается.
Вроде бы Asio здесь будет чересчур.
Или есть нюансы?
Asio может и чересчур, но уж очень хотелось потренироваться. Это, пожалуй, основное. С другой стороны, Asio просто абстракция, и её можно было бы использовать чисто в синхронном виде (ровно как и в режиме Reactor). Ещё было желание поиграться с корутинами.
Ещё, я уже мог подзабыть, но что-то было с обработкой подключений и дисконнектов. Если слушать "одновременно" проще реагировать на отвал одной из частей подключения: или клиента или сервера. Аналогично упрощается жизнь при вклинивании, особенно, когда требуется унификация: после завершения чтения с одной стороны канала я могу спокойно сразу же запланировать следующее чтение, которое завершится как только данные пройдут.
Там был задействован Cypress FX3,
Дилетантский вопрос: почему задействовали такой специфический контроллер?
И еще интересует с каким отладчиком работает GDB-сервер hw_server ?
MitM-like поддержка RTOS в GDB