4

在 gdb 中,如果我只是按回车键,它会重复最后一个命令。有没有办法配置 Sun/Oracle/Solaris dbx 来做同样的事情?

4

2 回答 2

2

看起来您可以为此使用 $repeatmode 。我从dbx-guide得到以下信息

Repeating Commands

You can execute any of the commands contained in the history list. Each
history command begins with an exclamation point (!):

!!  Repeats the previous command. If the value of the dbx
variable $repeatmode is set to 1, then entering a carriage
return at an empty line is equivalent to executing !!. By
default, $repeatmode is set to 0.

似乎还有另一个选项“gdb on”,它使 dbx 的行为类似于 gdb。我也没有尝试过,因为我现在无法访问 dbx,所以你可以告诉我这是否适合你。

于 2012-05-31T13:21:09.700 回答
2

您可以通过在 dbx 中启用“gdb 模式”来获得该行为。

(dbx) gdb on
(dbx) step
stopped in main at line 4 in file "t.c"
    4       printf("world");
(dbx) 
step
stopped in main at line 5 in file "t.c"
    5       printf("!");
(dbx) 
step
stopped in main at line 6 in file "t.c"
    6       printf("\n");
(dbx) 
step
helloworld!
stopped in main at line 7 in file "t.c"
    7   }

这是来自最新 dbx 的 gdb 模式的帮助。

(dbx) 帮助 gdb
gdb(命令)
gdb 上 | 离开
使用 `gdb on' 进入 dbx 会理解的 gdb 命令模式
并接受 gdb 命令。退出 gdb 命令模式并返回到 dbx
命令模式,输入“gdb off”。请注意,dbx 命令不会
在 gdb 命令模式下被接受,反之亦然。所有调试设置
例如断点在不同的命令模式下被保留。这
当前版本不支持以下 gdb 命令:
        - 命令 - 定义
        - 处理 - hbreak
        - 中断 - 维护
        -printf -rbreak
        - 返回 - 信号
        - tcatch - 直到
于 2012-06-05T16:28:55.510 回答