Ответы:
Список внешних интерфейсов GDB можно найти по адресу http://sourceware.org/gdb/wiki/GDB%20Front%20Ends.
Это, к сожалению, дает только дополнительные ссылки, но не дает никаких намеков на область применения и удобство использования, которые там сильно различаются. Я бы порекомендовал использовать внешний интерфейс, который находится в активной разработке, так как сам GDB сильно меняется.
GDB Dashboard
https://github.com/cyrus-and/gdb-dashboard
Панель инструментов GDB использует официальный API GDB Python и печатает информацию, которую вы хотите, когда GDB останавливается, например, после a next
, как собственная display
команда .
Против TUI:
более надежный, поскольку он просто печатает на стандартный вывод вместо того, чтобы перевести оболочку в более магическое состояние, например:
vi
Режим в .inputrc
причинах проблем: /superuser/180512/how-to-turn-off-gdb-tui/927728#927728настраивается из Python: вы можете выбрать, что вы хотите выводить и насколько велика каждая секция в зависимости от того, что вы отлаживаете.
Наиболее полезные представления уже реализованы: источник, сборка, регистры, стек, память, потоки, выражения ... но должно быть легко расширить его любой информацией, предоставляемой в GDB Python API.
TUI позволяет показывать только два источника, сборку и регистры и все. Если, конечно, вы не хотите изменять его исходный код на C ;-)
Я считаю, что GDB должен поставляться с такой настройкой из коробки и включаться по умолчанию, это привлечет гораздо больше пользователей таким образом.
О, и главный разработчик, Андреа Кардачи , был очень отзывчивым и потрясающим. Большой респект.
Смотрите также: /programming/209534/how-to-highlight-and-color-gdb-output-during-interactive-debugging/17341335#17341335