debugging - with - gdb调试




我怎样才能让gdb保存命令历史记录? (2)

如果您仍然遇到问题,请确保您的HISTSIZE环境变量是适当的高数字。 我是空的,导致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.

docs

设置历史大小大小
设置历史大小无限
设置GDB在其历史列表中保存的命令的数量。 默认值为环境变量HISTSIZE的值,如果未设置此变量,则为256。 如果大小没有限制,GDB在历史列表中保留的命令数量是无限的。

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


简短回答: 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> 。 该命令描述为“控制命令历史记录列表中删除重复的历史记录条目,如果count不为零,gdb将回顾最后一个记录历史记录条目,并删除当前条目的重复条目添加到命令历史记录列表中,如果count是无限的,那么这个lookbehind是无界的,如果count为0,那么删除重复的历史记录条目是禁用的

set history remove-duplicates <count>

默认情况下,gdb将历史记录保存到当前目录中的 ./.gdb_history文件 。 如果您希望命令历史不依赖于您所在的目录,还包括:

set history filename ~/.gdb_history




gdb