Использование меньше в качестве плеера 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.
- запускать emacs
- тип
Mx gdb
return (M означает мета-ключ или опцию на компьютерах Mac) - На панели сообщений 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
...