我想要禁用gdb行为,其中键入回车符重复执行输入的最后一个命令。我不喜欢什么都不做。这可能吗?
答案 0 :(得分:2)
似乎重复大多数命令是默认的gdb行为,并且没有设置可以更改它。这就是gdb的源代码:
/* Handle a complete line of input. This is called by the callback
mechanism within the readline library. Deal with incomplete
commands as well, by saving the partial input in a global
buffer. */
static void
command_line_handler (char *rl)
{
...
int repeat = (instream == stdin);
因为如果repeat
为instream
,您可以看到STDIN
已分配1。没有其他方法可以为repeat
分配不同的值。
所以你可以做的是从gdb的源代码(http://ftp.gnu.org/gnu/gdb/)在你的机器上构建自己的gdb
可执行文件。但是在构建更改gdb / event-top.c中的第591行之前。而不是
int repeat = (instream == stdin);
写
int repeat = 0;
答案 1 :(得分:1)
一个可行的技巧 - 我没有尝试过 - 将使用Python设置提示回调以调用" dont-repeat"。
对我来说似乎是一个合理的功能请求,gdb有一个禁用命令重复的设置。