Программное взаимодействие с gdbserver
-
20-08-2019 - |
Вопрос
Программа gdbserver позволяет выполнять удаленную отладку программ. Как правило, локальная копия gdb используется для взаимодействия с удаленным экземпляром gdbserver и программой, запущенной на этом удаленном gdbserver. Р>
У меня такой вопрос: существуют ли клиентские реализации удаленного последовательного протокола gdb (RSP), которые позволяют программам, отличным от gdb, взаимодействовать с программой gdbserver?
В этом документе обсуждается реализация сервера RSP , но это Клиентская сторона, в которой я в первую очередь заинтересован. Эта реализация поддерживает клиент и сервер, но реализован на обычном языке lisp и еще не является зрелой библиотекой.
Решение
Я не знаю ни одного клиента протокола GDB.
Зачем вам это нужно?
Для простых задач (запуск; остановка; проверка адресов памяти) вы можете написать одну с нуля довольно быстро.
Для сложных задач (раскрутка стека, проверка переменных и т. д.) вам придется заново реализовать важные части GDB; и это, вероятно, не следует пытаться без веской причины.
Также обратите внимание, что протокол GDB / gdbserver постоянно развивается; есть положения, позволяющие более новой GDB иметь дело со старым gdbserver, но я не уверен, верно ли обратное.
Другие советы
Протокол удаленного GDB полностью задокументирован в руководстве GDB, которое доступно в Интернете по адресу http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html р>
У вас есть рабочий пример gdb - этого должно быть достаточно, чтобы вы могли написать клиент для управления gdbserver через последовательный протокол. ; -) р>