Существует ли какая-либо интерактивная или более удобная версия GDB для отладки?
Существует ли какая-либо интерактивная или более удобная для пользователя версия (или замена) GDB для отладки?
Некоторые люди предлагали CGDB, но после нескольких тестов я обнаружил, что он глючит и работает нестабильно.
4 ответа
GDB Dashboard
https://github.com/cyrus-and/gdb-dashboard
Панель инструментов GDB использует официальный API GDB Python и печатает информацию, которую вы хотите, когда GDB останавливается, например, после next
как родной display
командование
Против TUI:
более надежный, поскольку он просто печатает на стандартный вывод вместо того, чтобы перевести оболочку в более магическое состояние, например:
vi
режим в.inputrc
вызывает проблемы: https://superuser.com/questions/180512/how-to-turn-off-gdb-tui/927728- Программа stdout / stderr ломает ваш интерфейс: https://stackoverflow.com/questions/26291629/gdb-in-tui-mode-how-to-deal-with-stderrs-interaction-with-the-ui
настраивается из Python: вы можете выбрать, что вы хотите выводить и насколько велика каждая секция в зависимости от того, что вы отлаживаете.
Наиболее полезные представления уже реализованы: источник, сборка, регистры, стек, память, потоки, выражения... но должно быть легко расширить его любой информацией, предоставляемой в GDB Python API.
TUI позволяет показывать только два источника, сборку и регистры и все. Если, конечно, вы не хотите изменять его исходный код на C;-)
Я считаю, что GDB должен поставляться с такой настройкой из коробки и включаться по умолчанию, это привлечет гораздо больше пользователей таким образом.
О, и главный разработчик, Андреа Кардачи, был очень отзывчивым и потрясающим. Большой респект.
Смотрите также: https://stackoverflow.com/questions/209534/how-to-highlight-and-color-gdb-output-during-interactive-debugging/17341335
Список внешних интерфейсов GDB можно найти по адресу http://sourceware.org/gdb/wiki/GDB%20Front%20Ends
Это, к сожалению, дает только дополнительные ссылки, но не дает никаких намеков на область применения и удобство использования, которое сильно варьируется там Я бы порекомендовал использовать внешний интерфейс, который находится в активной разработке, так как сам GDB сильно меняется.
Вы можете использовать GDBFrontend: https://github.com/rohanrhu/gdb-frontend. Вы можете установить его с помощью следующих команд:
echo "deb [trusted=yes] https://oguzhaneroglu.com/deb/ ./" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt update
sudo apt install gdbfrontend
Видео об использовании: https://www.youtube.com/watch?v=z44KJDYZOoE
Вы можете попробовать UltraGDB, это интерфейс GDB GUI и облегченная IDE на основе технологии Eclipse.