Можно ли иметь несколько подключений к gdbserver?

Я использую Eclipse CDT и симулятор GNU ARM QEMU. Затмение начинает свое собственное gdb сессия с gdbserver работает на QEMU. Я также хочу иметь возможность подключения с терминала OSX для более точной настройки. Я также хочу иметь возможность использовать GDB/MI из скрипта Node.js для сбора полезных данных, таких как статус регистра и т. Д., И визуализации их на веб-странице.

Я могу нормально подключиться при запуске автономного симулятора QEMU со своим собственным сеансом GDB, но я хотел знать, возможно ли перенести обратно в GDB Eclipse, или установить второе подключение к gdbserver,

Спасибо!


С https://sourceware.org/gdb/onlinedocs/gdb/Server.html (20.3.1.2):

Когда GDB-сервер продолжает работать, GDB может подключиться к нему позже. Такое переподключение полезно для таких функций, как отключенная трассировка. Для полноты одновременно можно подключить не более одного GDB.


До сих пор я не мог понять это, и из документов кажется, что это невозможно.

Решение, которое я использую сейчас, - это запустить симулятор QEMU вручную из терминала. Отладчик GNU ARM Eclipse позволяет указать gdbserverhost:port, который я могу указать на автономный QEMU, который работает нормально.

Чтобы разрешить одновременные сеансы GDB, я мог бы создать собственный сервер TCP для подключения к Eclipse вместо прямого подключения к gdbserver, Этот TCP-сервер перенаправляет весь трафик с Eclipse на gdbserver, и я также могу слушать и отправлять сообщения в GDB по этому каналу.

Конечным результатом является то, что вы можете отлаживать и устанавливать точки останова в Eclipse как обычно, а также взаимодействовать с GDB любым удобным для вас способом, например, через веб-интерфейс, собственный OSX-терминал и т. Д.

1 ответ

Нет встроенного способа сделать это. Есть проект для его реализации, но я не знаю, насколько он может быть активным.

Ваша идея иметь своего рода прокси может сработать. Я думаю, что он не сильно отличается от подхода, предложенного для мультиклиентского проекта. Если вас интересуют только те данные, которые уже могут пройти по проводам, другой аналогичный подход может заключаться в том, чтобы вставить куда-нибудь тройник и просто отфильтровать интересующие ответы.

Другие вопросы по тегам