【问题标题】:GDB - unable to get command history workingGDB - 无法使命令历史记录正常工作
【发布时间】:2014-10-02 02:26:39
【问题描述】:

我是 GDB 新手,无法获取命令历史记录(自动完成/向上箭头指向旧命令有效)。

在我的根目录下,我有一个 .gbd_init 文件(我的工作目录中也有一个相同的文件):

set history save

set history filename ~/.gbd_history

set history on

set history expansion on

我的根目录下还有一个空的 .gbd_history 文件。

在 GBD 的“演出历史”中给出:

(gdb) show history

expansion:  History expansion on command input is on.

filename:  The filename in which to record the command history is      
"/home/jenny/C_Programs/CS575_Algorithms/HW3/Problem1/.gdb_history".

save:  Saving of the history record on exit is on.

size:  The size of the command history is unlimited.

(gdb) 

但是 GBD 命令“显示命令”什么也没产生,向上箭头和制表符也不做任何事情。

.gbd_history 文件存在但为空。

 jenny@jennys-virtual-machine ~/C_Programs/CS575_Algorithms/HW3/Problem1 $ ls -ls .gbd*

 0 -rwxrwxrwx 1 jenny jenny  0 Oct  1 22:16 .gbd_history

 4 -rwxrwxrwx 1 jenny jenny 94 Oct  1 22:01 .gbdinit

我错过了什么?

感谢您的帮助。每个命令的输入都很快变老了。

珍妮

【问题讨论】:

    标签: gdb command history


    【解决方案1】:

    在我的根目录下,我有一个 .gbd_init 文件(我也有一个相同的文件 在我的工作目录中):

    您拼错了 gdb 初始化文件名​​。它应该命名为.gdbinit.gbd_init 没有被 gdb 执行,历史保存也没有开启。

    【讨论】:

      【解决方案2】:

      您的 .gdbinit 脚本显然没有被执行,正如您从 gdb_history 文件名中看到的那样,它具有默认值(当前目录中的 gdb_history)。

      尝试在当前目录中使用 gdb -x .gdbinit 执行此初始化脚本,因为它可能默认禁用。至少我的 gdb 希望我在允许加载驻留在主目录之外的初始化脚本之前设置某种自动加载安全路径。详情见here

      如果您只想使用历史记录而不需要重复命令,您可能应该只编写一个包含所有这些命令的脚本,然后使用 gdb -x script 等执行它。

      一定要查看this SO thread 如何轻松启用命令历史记录。

      【讨论】:

      • 非常感谢。它现在正在工作。我将 .gdbinit 文件更新为以“set auto-load safe-path /”开头,然后使用“gdb -q -iex”set auto-load safe-path /home/jenny“program -tui”调用 gdb,现在命令历史/向上箭头正在工作。
      猜你喜欢
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      相关资源
      最近更新 更多