如何设置gdb以保存命令历史?当开始一个新的gdb会话时,我想使用向上箭头键来访问前一个会话的命令。


简短的回答:

mkdir -p ~/.config/gdb
echo 'set history save on' >> ~/.config/gdb/gdbinit

长一点的回答:

命令历史记录包含在GDB手册22.3命令历史中。创建一个$HOME/文件。Config /gdb/gdbinit,增加如下行:

set history save on

您可以通过以下命令设置保存的过去命令条数。该命令被描述为“设置gdb保存在其历史列表中的命令数量”。默认为环境变量GDBHISTSIZE的值,如果没有设置该变量,则为256。GDBHISTSIZE的非数值值将被忽略。如果size是无限的,或者如果GDBHISTSIZE是负数或者是空字符串,那么gdb在历史列表中保存的命令数量是无限的。

set history size <size>

相关命令为set history remove- duplduplicate <count>。该命令描述为“控制删除命令历史记录列表中重复的历史记录项。”如果count不为零,gdb将查看最后一个计数历史条目,并删除添加到命令历史列表中的当前条目的副本的第一个条目。如果count是无限的,那么这个后视是无界的。如果count为0,则禁用删除重复的历史条目”。

set history remove-duplicates <count>

默认情况下,gdb将历史保存到./文件中。Gdb_history在当前目录下。如果你想让你的命令历史不依赖于你所在的目录,还可以包括:

set history filename ~/.gdb_history

如果仍然有问题,请确保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。如果size是无限的,那么GDB在历史列表中保存的命令数量是无限的。