Как настроить gdb
так, чтобы он сохранял историю команд? При запуске нового сеанса gdb
я хотел бы использовать клавиши со стрелками для доступа к командам предыдущих сеансов.Как я могу заставить gdb сохранить историю команд?
ответ
Короткий ответ: echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit
Длинный ответ:
История команды кроется в GDB manual, 22.3 Command History. Создайте файл $HOME/.gdbinit
, изменить права доступа к 0600
, и добавить следующее содержание:
set history save on
Вы можете установить количество предыдущих команд, сохраненных с помощью следующих действий. Команда описывается как «Задайте количество команд, которые gdb хранит в своем списке хронологии. По умолчанию используется значение переменной среды GDBHISTSIZE или 256, если эта переменная не установлена. Нечисловые значения GDBHISTSIZE игнорируются. Если размер не ограничен или GDBHISTSIZE является либо отрицательным числом, либо пустой строкой, то количество команд gdb хранится в списке истории неограниченно «.
set history size <size>
Связанная с этим команда set history remove-duplicates <count>
. Команда описана как «Управляйте удалением повторяющихся записей истории в списке истории команд. Если счетчик не равен нулю, gdb будет оглядываться на последние записи статистики счета и удалять первую запись, которая является дубликатом текущей записи добавляется в список истории команд. Если счетчик не ограничен, этот lookbehind неограничен. Если count равен 0, удаление дубликатов записей истории отключено «.
set history remove-duplicates <count>
По умолчанию, GDB сохраняет историю в файл ./.gdb_history in the current directory. Если вы хотите, чтобы ваша история команд не зависит от каталога вы находитесь, также включают в себя:
set history filename ~/.gdb_history
Только что нашел это для себя и подумал, что я поделюсь этим на SO. – Frank
В следующий раз совершенно законно создавать такие ответы на собственные вопросы, как не-community-wiki. :) –
@Frank Как насчет того, если я набираю 'n', тогда я стрелка вверх, я получаю все предыдущие команды, начинающиеся с' n'. – SIFE
Если вы все еще возникают проблемы, убедитесь, что ваша переменная HISTSIZE среда является подходящим большое число. Шахта была пуста, в результате чего «размер истории» GdB в настройки по умолчанию 0.
Добавлено
export HISTSIZE=100000000
в моем ~/.bashrc и все набухают
Вы можете проверить настройки истории 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.
от docs:
набор история размера размера История
комплекта размер неограничен
Установить число команд, которые GDB хранит в своем списке истории. По умолчанию это значение переменной среды HISTSIZE или 256, если эта переменная не установлена. Если размер неограничен, количество команд, хранящихся в списке хронологии, неограниченно.
У меня была та же проблема. Несмотря на то, что в файле .gdbinit был задан 'set history size 100', переменная среды HISTSIZE по-прежнему вызывала нулевой размер истории. Проблема в том, что gdb не понимает, что [HISTSIZE может быть установлен как неограниченный] (http://stackoverflow.com/questions/9457233/unlimited-bash-history) – DavidW
Ошибка HISTSIZE в gdb была [исправлена с Июнь 2015 г.] (https://sourceware.org/bugzilla/show_bug.cgi?id=16999), а не то, что это изменение, скорее всего, будет присутствовать в вашей системе. Между тем, если «HISTSIZE» установлен, оно должно быть> 0, или gdb отключит историю. –
- 1. DDD отладчик: сохранить историю команд между сеансами
- 2. GDB - не удается получить историю команд, работая
- 3. Как использовать историю команд gvim?
- 4. Как сохранить историю моих команд в Windows (7) Командная строка?
- 5. Как я могу заставить GDB перестать спрашивать меня о символах?
- 6. Как я могу заставить GDB продвигаться в нужное место?
- 7. Как я могу заставить GDB сказать, какой адрес вызвал segfault?
- 8. Как прокрутить историю команд tmux?
- 9. Как сохранить историю команд в текстовом файле в MATLAB
- 10. Как заставить GDB разбирать?
- 11. Как загрузить историю команд bash из файла
- 12. Как сохранить историю сеансов?
- 13. Как очистить историю команд в Octave
- 14. Haskell: как просмотреть историю команд внутри «Прелюдии»?
- 15. Как просмотреть историю различных команд в Emacs
- 16. Удаление пользовательских команд в GDB
- 17. Как создать историю команд в консольном приложении?
- 18. Как установить историю команд в файле Docker
- 19. Vim: Как вставить команду в историю команд?
- 20. tmux: просмотреть историю команд-подсказок?
- 21. Как я могу получить историю команд для консольной отладки в PyCharm?
- 22. Как вы просматриваете историю команд vim?
- 23. Как получить историю команд с сервера Firebird
- 24. Как очистить историю команд в оболочке mongodb
- 25. сохранить и перезагрузить историю каталогов
- 26. Как вставить запрос, чтобы сохранить историю деятельности?
- 27. Как я могу получить историю браузера
- 28. Как я могу увидеть всю историю bash?
- 29. Как я могу заставить mysqldump сохранить регистр имен таблиц?
- 30. Как я могу заставить Mongoose Сохранить() для синхронной
Примечание: Файл '.gdbinit' должен быть защищен от записи другими, чем вы, на linux. – urzeit
@urzeit - Я думаю, что это потерянное дело на дистрибутивах, таких как Ubuntu. Они разрешают кому-либо войти в чужой домашний каталог по умолчанию. – jww
@jww Файл '.gdbinit' не обрабатывается, если разрешения не настроены правильно, независимо от того, что является стандартным или какие другие ограничения для домашних каталогов используются системой. – urzeit