按Enter键时停止gdb重复上一个(第三方)命令

时间:2017-12-18 19:00:34

标签: gdb

我在gdb中使用了一些第三方宏,这需要 long 时间来运行。

我一直按Enter键,因为我的肌肉记忆就是这样。

这会导致宏再次运行。

有什么方法可以说服gdb 而不是按Enter键运行上一个命令?

我找到了dont-repeat文档,但似乎我必须将它添加到用户定义的命令中。这些是第三方命令,我不想特别编辑它们。

有没有办法全局关闭此行为?或者对于特定命令(可能使用通配符/正则表达式)?

1 个答案:

答案 0 :(得分:1)

  

这些是第三方命令,我并不特别想编辑   所有这些。

对于特定命令,您可以定义预挂钩,关闭重复最后一个命令。这样可以避免编辑它们。例如,您可以为continue命令定义这样的预挂钩:

(gdb) c
The program is not being run.
(gdb) 
The program is not being run.
(gdb) 
The program is not being run.
(gdb) 
The program is not being run.
(gdb) 
The program is not being run.
(gdb) define hook-continue
Type commands for definition of "hook-continue".
End with a line saying just "end".
>dont-repeat
>end
(gdb) c
The program is not being run.
(gdb) 
(gdb) 
(gdb) 
(gdb) 
(gdb) 

请参阅hooks doc