在 gdb 中,'where'、'bt' 和 'i frame' 命令之间有什么区别?

In gdb, what's the difference between 'where', 'bt', and 'i frame' commands?

似乎它们都打印出有关当前调用帧的信息,'i frame' 似乎提供了更多信息。但是我真的没有看到 'where' 命令的必要性。有什么是 'where' 命令可以做而 'bt' 或 'i frame' 不能做的吗?

谢谢!

wherebt 是完全同义词并产生完全相同的输出。来自 manual:

The names where and info stack (abbreviated info s) are additional
aliases for backtrace.

info frame 完全不同:它描述的是 当前 帧,而不是调用堆栈。

I don't really see the necessity of 'where' command

它的存在是为了让第一次使用其他调试器的人(例如 dbx)的生活更轻松。