为什么gdb中有“没有'停止'命令”?

时间:2018-01-27 07:54:41

标签: gdb

我正在尝试学习gdb的基础知识。我看到了,在gdb的help obscure中,有一行说:

  

停止 - 没有'停止'命令

但是,输入stop与输入不存在的命令不同 - 它不会打印“未定义的命令”消息。此外,它似乎什么都不做,什么也没有输出。

这种“命令”出于某种向后兼容的原因吗?如果没有,为什么有一个命令不做任何事情,但在帮助中有一行断言它不是命令?如果是这样的话,为什么它不会打印出至少一些回复给用户的东西,表明没有做任何事情,所以如果他们认为它做了与其名称有关的事情,他们就不会感到困惑?或者它确实做了什么?

我觉得这个奇怪的命令背后有某种明显的后见之明的原因,但令人惊讶的是我发现我无法向Google发表这样的言论,以至于它提出了其他人提出这个问题。我希望我不仅仅是愚蠢而且浪费你们所有的时间,但我老老实实地感到难过。

1 个答案:

答案 0 :(得分:2)

help obscure命令的

stop确实有点模糊。要获得有关它的更多信息,请阅读help stop

(gdb) help stop 
There is no `stop' command, but you can set a hook on `stop'.
This allows you to set a list of commands to be run each time execution
of the program stops.

实际上 stop命令,但它什么也没做。它旨在用于gdb钩子。另请参阅hooks documentation

  

此外,还存在伪命令“停止”。定义('勾手')   每次执行停止时都会执行关联的命令   你的程序:在运行断点命令之前,显示是   打印,或打印堆栈框架。