Ответ 1
Он назвал TUI (не шучу). Начните, например, с gdbtui
или gdb -tui
...
Я просто отлаживал программу в gdb, и каким-то образом я нашел новую функцию, о которой я никогда не видел или даже не слышал раньше, разделенный вид, где я могу видеть и просматривать код в дополнение к предоставлению команд:
Что это? Что я сделал, или, точнее, как снова получить этот режим с разделенным экраном? Есть ли имя для этого режима, или где-нибудь я могу прочитать о том, как его использовать?
Он назвал TUI (не шучу). Начните, например, с gdbtui
или gdb -tui
...
Вы можете активировать его динамически, нажимая ctrl + x и ctrl + a.
Есть два варианта.
Нажмите CTRL
X
вместе, а затем 1
Нажмите 'CTRL' 'X' вместе, а затем '2'
http://www.cs.fsu.edu/~baker/ada/gnat/html/gdb_23.html
Снимок экрана с кодом и сборкой.
Вы также можете запустить его из оболочки GDB, используя команду "-" (тире). Не уверен, как динамически отключить его, хотя.
Введите layout
в качестве команды в gdb, и будет показано окно разделения.
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#927728настраивается из Python: вы можете выбрать, что вы хотите выводить и насколько велика каждая секция в зависимости от того, что вы отлаживаете.
Наиболее полезные представления уже реализованы: источник, сборка, регистры, стек, память, потоки, выражения... но должно быть легко расширить его любой информацией, предоставляемой в GDB Python API.
TUI позволяет показывать только два источника, сборку и регистры и все. Если, конечно, вы не хотите изменять его исходный код на C ;-)
Я считаю, что GDB должен поставляться с такой настройкой из коробки и включаться по умолчанию, это привлечет гораздо больше пользователей таким образом.
Да, и главный разработчик Андреа Кардачи был очень отзывчивым и потрясающим. Большой респект.
Смотрите также: Как выделить и раскрасить вывод gdb во время интерактивной отладки?
Когда GDB находится в стандартном режиме, использование win
автоматически переключится в режим TUI.
Другая команда для режима TUI:
info win
focus next | prev | src | asm | regs | split
Прочтите здесь, чтобы получить дополнительную помощь.
Режим tui явно вдохновлялся emacs - я обнаружил его случайно, когда нажал ^ Xo, который переключается между разделенными окнами в emacs, - иногда я сталкивался с этим безрассудно, когда мне нужно переключиться на другую программу. В любом случае, это приводит к другой функции, которая еще не упомянута, - вы можете переместить курсор из окна кода (где вы можете прокрутить) в командную строку, или наоборот, с помощью ^ Xo.
Существует также интерфейс для GDB, называемый cgdb. Даже с подсветкой. "ESC", чтобы переключиться на просмотр кода, "i", чтобы переключиться на gdb