debugging 如何让gdb保存命令历史记录?

j2cgzkjk  于 2023-04-21  发布在  其他
关注(0)|答案(3)|浏览(499)

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

qkf9rpyu

qkf9rpyu1#

简短回答:

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

长回答:
命令历史记录在GDB manual, 22.3 Command History中。创建一个文件$HOME/.config/gdb/gdbinit,并添加以下行:

set history save on

您可以使用以下命令设置过去保存的命令数量。该命令描述为 *“设置gdb在其历史记录列表中保存的命令数量。默认值为环境变量GDBHISTSIZE的值,如果未设置此变量,则为256。GDBHISTSIZE的非数字值将被忽略。如果大小不受限制,或者GDBHISTSIZE是负数或空字符串,则gdb在历史列表中保存的命令的数量是无限的。

set history size <size>

一个相关的命令是set history remove-duplicates <count>。该命令被描述为 “控制命令历史列表中重复历史条目的删除。如果count非零,gdb将回看最后一个count历史条目并删除第一个条目,该条目是当前添加到命令历史列表中的条目的重复。如果count是无限的,则该向后查找是无界的。如果count为0,则禁止删除重复的历史条目”

set history remove-duplicates <count>

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

set history filename ~/.gdb_history
cunj1qz1

cunj1qz12#

如果你仍然有问题,请确保你的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在历史列表中保存的命令数量不受限制。

xam8gpfp

xam8gpfp3#

在Ubuntu 22.04中设置~/.bashrc

export GDBHISTSIZE=10000

然后运行

source ~/.bashrc

相关问题