Существует ли какая-либо интерактивная или более удобная для пользователя версия (или замена) GDB для отладки?
Некоторые люди предлагали CGDB, но после нескольких тестов я обнаружил, что он глючит и работает нестабильно.
Список внешних интерфейсов GDB можно найти на http://sourceware.org/gdb/wiki/GDB%20Front%20Ends
. К сожалению, здесь есть только дополнительные ссылки, но нет подсказок о область применения и удобство использования, которые там сильно различаются. Я бы порекомендовал использовать внешний интерфейс, который находится в активной разработке, поскольку сам GDB сильно меняется.
Вы можете попробовать UltraGDB , это интерфейс GDB GUI и облегченная IDE, основанная на технологии Eclipse.
Есть несколько графических интерфейсов для GDB. GNU DDD и KGDB , чтобы упомянуть пару.
GNU DDD :
KGDB :
Обновление: [ 1112] Я не упомянул, что GDB на самом деле имеет встроенный текстовый пользовательский интерфейс, если вы запускаете его с gdb -tui
:
Панель инструментов GDB
https://github.com/cyrus-and/gdb-dashboard
Панель инструментов GDB использует Python GDB API и печатает информацию, которую вы хотите, когда GDB останавливается, например после next
, как , нативная display
команда .
Против TUI:
более устойчивы, так как не переводят оболочку в более магическое состояние проклятий, например: режим
vi
в .inputrc
вызывает проблемы: https://superuser.com/questions/180512/how-to-turn-off-gdb-tui/927728#927728 легко настраивается из Python: вы можете выбрать, что вы хотите выводить, и насколько велика каждая секция в зависимости от того, что вы отлаживаете.
Наиболее полезные представления уже реализованы: источник, сборка, регистры, стек, память, потоки, выражения ... но должно быть легко расширить его любой информацией, предоставляемой через API GDB Python.
TUI позволяет показывать только два источника, сборку и регистры, и это все. Если, конечно, вы не хотите изменять его исходный код на C; -)
Я считаю, что GDB должен поставляться с такой настройкой, как эта из коробки и включен по умолчанию, это привлечет гораздо больше пользователей таким образом.