Я просто отлаживал программу в gdb и каким-то образом обнаружил новую функцию, которую никогда раньше не видел и даже не слышал, - разделенное представление, в котором я могу видеть и просматривать код в дополнение к командам:
Что это? Что я сделал, или, точнее, как мне снова получить этот режим разделения экрана? Есть ли название для этого режима или где-нибудь я могу прочитать о том, как его использовать?
Ответы:
Это называется TUI (без шуток). Начните, например, с
gdbtui
илиgdb -tui
...источник
layout next
после запуска вgdb
обычном режимеВы можете запускать его динамически, нажимая ctrl+ xи ctrl+ a.
источник
Есть два варианта.
Нажмите
CTRL
X
вместе, а затем1
Одновременно нажмите CTRL, X и затем 2.
http://www.cs.fsu.edu/~baker/ada/gnat/html/gdb_23.html
Снимок экрана представления с кодом и сборкой.
Также ознакомьтесь с этим удивительным проектом Github.
источник
Вы также можете запустить его из оболочки gdb, используя команду «-» (тире). Не знаю, как его динамически выключить.
источник
Панель управления GDB
https://github.com/cyrus-and/gdb-dashboard
Панель управления GDB использует официальный GDB Python API и выводит необходимую вам информацию, когда GDB останавливается, например, после a
next
, как собственнаяdisplay
команда .По сравнению с TUI:
более надежный, поскольку он просто выводит на стандартный вывод вместо того, чтобы переводить оболочку в состояние более волшебных проклятий, например:
vi
режим.inputrc
вызывает проблемы: /superuser/180512/how-to-turn-off-gdb-tui/927728#927728широкие возможности настройки из Python: вы можете выбрать, что вы хотите вывести, и размер каждого раздела в зависимости от того, что вы отлаживаете.
Наиболее полезные представления уже реализованы: исходный код, сборка, регистры, стек, память, потоки, выражения ... но его должно быть легко расширить с помощью любой информации, представленной в GDB Python API.
TUI позволяет отображать только два источника: сборку и регистры, и все. Если, конечно, вы не хотите изменять исходный код на C ;-)
Я считаю, что GDB должен поставляться с такой настройкой из коробки и включенным по умолчанию, таким образом он привлечет гораздо больше пользователей.
О, и главный разработчик, Андреа Кардачи , был очень отзывчивым и потрясающим. Большая честь.
См. Также: Как выделить и раскрасить вывод GDB во время интерактивной отладки?
источник
Введите
layout
команду в gdb, и будет показано разделенное окно.источник
Когда GDB находится в стандартном режиме, using
win
автоматически переключается в режим TUI.Другая команда для режима TUI:
info win
Перечислите и укажите размер всех отображаемых окон.
focus next | prev | src | asm | regs | split
Установите фокус на названное окно. Эта команда позволяет изменить активное окно, чтобы клавиши прокрутки можно было переключить на другое окно.
Прочтите здесь, чтобы получить дополнительную помощь.
источник
Существует также инструмент интерфейса для GDB, называемый cgdb. Даже с некоторым цветным мелированием. «ESC» для переключения в режим просмотра кода, «i» для возврата в GDB
источник
Режим tui был явно вдохновлен emacs - я обнаружил его случайно, когда нажал ^ Xo, который переключает между разделенными окнами в emacs - я иногда ударяю по нему рассеянно, когда то, что я должен делать, - это переключаться на другую программу. В любом случае, это приводит к другой еще не упомянутой функции: вы можете перемещать курсор из окна кода (где вы можете прокручивать) в командную строку или наоборот, используя ^ Xo.
источник