如何使gdb保存命令历史?

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

35903 次浏览

简短的回答:

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

长一点的回答:

命令历史记录包含在GDB手册,22.3命令历史. xml文件中。创建一个文件$HOME/.config/gdb/gdbinit,并添加以下行:

set history save on

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

set history size <size>

相关的命令是set history remove-duplicates <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.

文档:

< p > 设置历史大小大小 < br > 设置历史记录大小不限 < br > 设置GDB在其历史列表中保留的命令数量。默认为环境变量HISTSIZE的值,如果没有设置该变量,则为256。如果size是无限的,则GDB在历史列表中保存的命令的数量是无限的