Fra*_*ank 268
简短回答: echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit
答案很长:
命令历史记录包含在GDB手册中,22.3命令历史记录.创建文件$HOME/.gdbinit
,更改其权限0600
,并添加以下内容:
set history save on
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令设置保存的过去命令的数量.该命令被描述为"一套GDB保持在历史列表中的命令的数量.这样会默认使用环境变量GDBHISTSIZE的值,或256,如果这个变量没有设置.GDBHISTSIZE的非数值将被忽略.如果大小是无限的,或者如果GDBHISTSIZE是负数或空字符串,那么gdb在历史列表中保留的命令数是无限的".
set history size <size>
Run Code Online (Sandbox Code Playgroud)
一个相关的命令是set history remove-duplicates <count>
.该命令被描述为"控制在命令历史列表中删除重复的历史条目.如果count不为零,gdb将回顾最后的计数历史条目,并删除与当前条目重复的第一个条目添加到命令历史列表.如果count是无限制的,则此lookbehind是无限的.如果count为0,则禁用删除重复的历史记录条目".
set history remove-duplicates <count>
Run Code Online (Sandbox Code Playgroud)
默认情况下,gdb将历史记录保存到当前目录中的 ./.gdb_history文件中.如果您希望命令历史记录不依赖于您所在的目录,还包括:
set history filename ~/.gdb_history
Run Code Online (Sandbox Code Playgroud)
如果您仍遇到问题,请确保您的HISTSIZE环境变量数字合适.我的是空的,导致gdb的"历史大小"设置默认为0.
添加
export HISTSIZE=100000000
Run Code Online (Sandbox Code Playgroud)
到我的〜/ .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.
Run Code Online (Sandbox Code Playgroud)
来自文档:
set history size size
set history size unlimited
设置GDB在其历史记录列表中保留的命令数.默认为环境变量HISTSIZE的值,如果未设置此变量,则默认为256.如果大小不受限制,则GDB在历史列表中保留的命令数量不受限制.
归档时间: |
|
查看次数: |
24718 次 |
最近记录: |