Использование меньше в качестве плеера gdb

Я заметил, что в GDB при выдаче команд с длинными выходными данными, такими как info variables, на выходе отображается одна страница на время, нажимая enter чтобы перейти вниз, а q - выйти.

Можно ли заменить пейджер по умолчанию на другой, например, less, чтобы я мог перемещаться вверх и вниз, уходить, искать и т.д.?

Ответ 1

Можно ли заменить пейджер по умолчанию на другой

Нет: GDB не вызывает внешнюю программу для вывода вывода, она просто приостанавливает вывод каждого экрана (и вы не можете сделать паузу по set height 0).

В дополнение к запуску внутри emacs вы также можете использовать screen или tmux (изучение их, как правило, поможет вам во многих других ситуациях), или попросите GDB зарегистрировать выход (set logging on), а затем gdb.txt поиск в gdb.txt с любым $PAGER ты хочешь.

Ответ 2

запустите gdb внутри emacs и вы сможете использовать команды подкачки emacs.

  1. запускать emacs
  2. тип Mx gdb return (M означает мета-ключ или опцию на компьютерах Mac)
  3. На панели сообщений Emacs появится сообщение: Run gdb (like this): gdb

Более подробную информацию можно найти здесь: http://tedlab.mit.edu/~dr/gdbintro.html

НТН

Ответ 3

вы можете поместить следующие пользовательские команды в ~/.gdbinit, затем

% cat ~/.gdbinit
python import os
define less1
    python os.popen("less","w").write(gdb.execute("$arg0",to_string=True))
end

define less2
    python os.popen("less","w").write(gdb.execute("$arg0 $arg1",to_string=True))
end
...
% gdb
(gdb) less2 info var
...
(gdb) less1 disass
...