Как я могу заставить GDB сохранить историю команд? - PullRequest
182 голосов
/ 05 июля 2010

Как настроить gdb, чтобы он сохранял историю команд?При запуске нового сеанса gdb я бы хотел использовать клавиши со стрелками вверх для доступа к командам предыдущих сеансов.

Ответы [ 2 ]

260 голосов
/ 05 июля 2010

Краткий ответ: echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit


Длинный ответ:

История команд описана в руководстве GDB, 22.3 История команд .Создайте файл $HOME/.gdbinit, измените его права доступа на 0600 и добавьте следующее содержимое:

set history save on

Вы можете установить количество сохраненных прошлых команд с помощью следующего.Команда описывается как "Установить количество команд, которые GDB хранит в своем списке истории. По умолчанию это значение переменной среды GDBHISTSIZE или 256, если эта переменная не задана. Нечисловые значения GDBHISTSIZE:игнорируется. Если размер не ограничен или GDBHISTSIZE является либо отрицательным числом, либо пустой строкой, то количество команд, которые GDB хранит в списке истории, не ограничено ".

set history size <size>

Связанная командаset history remove-duplicates <count>.Команда описывается как «Управление удалением повторяющихся записей истории в списке истории команд. Если число не равно нулю, GDB проверит последние записи истории счета и удалит первую запись, которая является дубликатомтекущая запись добавляется в список истории команд. Если число не ограничено, этот просмотр не ограничен. Если число равно 0, то удаление повторяющихся записей истории отключено ".

set history remove-duplicates <count>

По умолчаниюGDB сохраняет историю в файл ./.gdb_history в текущем каталоге .Если вы хотите, чтобы история команд не зависела от каталога, в котором вы находитесь, также укажите:

set history filename ~/.gdb_history
7 голосов
/ 16 августа 2014

Если у вас все еще возникают проблемы, убедитесь, что ваша переменная среды HISTSIZE имеет достаточно большое число.Мой был пуст, в результате чего значение "размер истории" в GDB по умолчанию было равно 0.

Добавлен

export HISTSIZE=100000000

в мой ~ / .bashrc и все отлично

Вы можетепроверьте настройки истории GDB, выполнив (внутри GDB) «Показать историю»:

gdb$ show history
expansion:  History expansion on command input is off.
filename:  The filename in which to record the command history is "/home/xiao/.gdb_history".
save:  Saving of the history record on exit is on.
size:  The size of the command history is 100000000.

Из документов :

установить размер истории размер
установить неограниченный размер истории
Установить количество команд, которые GDB хранит в своем списке истории.По умолчанию используется значение переменной среды HISTSIZE или 256, если эта переменная не установлена.Если размер не ограничен, количество команд, которые GDB хранит в списке истории, не ограничено.

...