Подтвердить что ты не робот

Gdb разделить вид с кодом

Я просто отлаживал программу в gdb, и каким-то образом я нашел новую функцию, о которой я никогда не видел или даже не слышал раньше, разделенный вид, где я могу видеть и просматривать код в дополнение к предоставлению команд:

Sorry about the picture, but ttys don't have screenshots.

Что это? Что я сделал, или, точнее, как снова получить этот режим с разделенным экраном? Есть ли имя для этого режима, или где-нибудь я могу прочитать о том, как его использовать?

4b9b3361

Ответ 1

Он назвал TUI (не шучу). Начните, например, с gdbtui или gdb -tui...

Ответ 2

Вы можете активировать его динамически, нажимая ctrl + x и ctrl + a.

Ответ 3

Есть два варианта.

  • только для просмотра кода Нажмите

Нажмите CTRL X вместе, а затем 1

  1. Чтобы увидеть как источник, так и сборку

Нажмите 'CTRL' 'X' вместе, а затем '2'

http://www.cs.fsu.edu/~baker/ada/gnat/html/gdb_23.html

Снимок экрана с кодом и сборкой. enter image description here

Также ознакомьтесь с этим замечательным проектом Github.

Ответ 4

Вы также можете запустить его из оболочки GDB, используя команду "-" (тире). Не уверен, как динамически отключить его, хотя.

Ответ 5

Введите layout в качестве команды в gdb, и будет показано окно разделения.

Ответ 6

GDB Dashboard

https://github.com/cyrus-and/gdb-dashboard

Панель инструментов GDB использует официальный API GDB Python и печатает информацию, которую вы хотите, когда GDB останавливается, например, после next, как собственная команда display.

Против TUI:

  • более надежный, поскольку он просто печатает на стандартный вывод вместо того, чтобы перевести оболочку в более магическое состояние, например:

  • настраивается из Python: вы можете выбрать, что вы хотите выводить и насколько велика каждая секция в зависимости от того, что вы отлаживаете.

    Наиболее полезные представления уже реализованы: источник, сборка, регистры, стек, память, потоки, выражения... но должно быть легко расширить его любой информацией, предоставляемой в GDB Python API.

    TUI позволяет показывать только два источника, сборку и регистры и все. Если, конечно, вы не хотите изменять его исходный код на C ;-)

enter image description here

Я считаю, что GDB должен поставляться с такой настройкой из коробки и включаться по умолчанию, это привлечет гораздо больше пользователей таким образом.

Да, и главный разработчик Андреа Кардачи был очень отзывчивым и потрясающим. Большой респект.

Смотрите также: Как выделить и раскрасить вывод gdb во время интерактивной отладки?

Ответ 7

Когда GDB находится в стандартном режиме, использование win автоматически переключится в режим TUI.
Другая команда для режима TUI:

  • info win
    Список и укажите размер всех отображаемых окон.
  • focus next | prev | src | asm | regs | split
    Установите фокус на именованное окно. Эта команда позволяет изменить активное окно, чтобы клавиши прокрутки могли быть затронуты в другое окно.

Прочтите здесь, чтобы получить дополнительную помощь.

Ответ 8

Режим tui явно вдохновлялся emacs - я обнаружил его случайно, когда нажал ^ Xo, который переключается между разделенными окнами в emacs, - иногда я сталкивался с этим безрассудно, когда мне нужно переключиться на другую программу. В любом случае, это приводит к другой функции, которая еще не упомянута, - вы можете переместить курсор из окна кода (где вы можете прокрутить) в командную строку, или наоборот, с помощью ^ Xo.

Ответ 9

Существует также интерфейс для GDB, называемый cgdb. Даже с подсветкой. "ESC", чтобы переключиться на просмотр кода, "i", чтобы переключиться на gdb

cgdb