我怎样才能让gdb保存命令的历史logging?
我如何设置gdb
以便保存命令历史logging? 当开始一个新的gdb
会话时,我想使用向上箭头键来访问以前会话的命令。
简短回答: echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit
很长的回答:
命令历史logging在GDB手册22.3命令历史中 。 创build一个文件$HOME/.gdbinit
,将其权限更改为0600
,并添加以下内容:
set history save on
您可以使用以下命令设置保存的过去命令的数量。 该命令被描述为“设置gdb保存在其历史列表中的命令的数量,缺省值为环境variablesGDBHISTSIZE的值,如果没有设置该variables,则将其设置为256.忽略GDBHISTSIZE的非数字值。大小是无限的,或者如果GDBHISTSIZE是负数或空string,那么gdb在历史列表中保留的命令的数量是无限的 。
set history size <size>
相关命令是set history remove-duplicates <count>
。 该命令被描述为“控制命令历史logging列表中删除重复的历史条目,如果count不为零,gdb将回顾最后的历史logging条目,并删除当前条目的重复的第一个条目添加到命令历史logging列表中,如果count是无限的,那么这个lookbehind是无界限的,如果count为0,那么删除重复的历史logging条目是禁用的 。
set history remove-duplicates <count>
默认情况下,gdb将历史logging保存到当前目录下的 ./.gdb_history文件中 。 如果您希望命令历史不依赖于您所在的目录,还包括:
set history filename ~/.gdb_history
如果仍然有问题,请确保您的HISTSIZE环境variables是一个适当的高数字。 矿是空的,导致gdb的“历史大小”设置默认为0。
添加
export HISTSIZE=100000000
我〜/ .bashrc和一切都是膨胀
你可以通过(在gdb中)“show history”来检查你的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在其历史列表中保存的命令的数量。 这个缺省值是环境variablesHISTSIZE的值,如果没有设置这个variables,则为256。 如果大小是无限的,那么GDB在历史列表中保留的命令的数量是无限的。