Как реализовать отладку GDB на моем собственном симуляторе системы?

Я пишу программу-симулятор для нестандартного микроконтроллера на C ++. Я хотел бы, чтобы пользователь мог использовать GDB для отладки своей программы, как если бы она работала на реальной цели.

Лучшее решение, которое я нашел, похоже, заключается в написании заглушки GDB для моего симулятора, которая будет взаимодействовать с GDB с использованием сетевого протокола. Однако это включает в себя написание полной программы, которая позаботилась бы о сетевом взаимодействии и связи с самим GDB.

Это кажется немного излишним, так как клиент и цель будут работать на одной машине. Нет ли более простого способа? Если бы не было, с популярностью GDB, я бы подумал, что существует библиотека или, по крайней мере, примеры, которые помогут встроить заглушку в обычную программу для настольного ПК?

3

Решение

Вы, конечно, можете написать «заглушку», которая является частью основного приложения — все, что вам нужно сделать, это прослушать соответствующий канал связи и соответствующим образом отреагировать на отправляемые команды / данные.

Вот статья, которая довольно хорошо описывает процесс написания заглушки:
http://www.embecosm.com/appnotes/ean4/embecosm-howto-rsp-server-ean4-issue-2.html

Также обсуждается (хотя и кратко) «использование симулятора».

1

Другие решения

GDB также поддерживает симулятор «встраивания» в сам GDB. Это вызывается командой «target sim» в gdb.

Посмотрите подкаталог sim в gdb, чтобы увидеть список уже реализованных симуляторов.

1

По вопросам рекламы [email protected]