Debugging 为什么LLDB将堆栈跟踪的顶部称为底部?

Debugging 为什么LLDB将堆栈跟踪的顶部称为底部?,debugging,lldb,Debugging,Lldb,在lldb中查看回溯时,我坐在第0帧上,试图向下移动堆栈,但lldb说: lldb关闭 错误:已在堆栈底部 在我看来,我坐在堆栈的顶部,因为它是最顶部的堆栈帧。即使是在堆栈上下移动的lldb命令似乎也在向后移动。例如,向下移动将从第1帧移动到第0帧,第0帧是我打断的帧。你知道他们为什么落后吗?或者我为什么落后?还是我遗漏了调用堆栈的一个基本概念?我总是尝试使用较旧和较新的堆栈框架,因为这反映了实际发生的情况,而不依赖堆栈在内存中增长方向的细节。但我们在命令行中使用上下键,主要是因为gdb就是这么

在lldb中查看回溯时,我坐在第0帧上,试图向下移动堆栈,但lldb说:

lldb关闭 错误:已在堆栈底部


在我看来,我坐在堆栈的顶部,因为它是最顶部的堆栈帧。即使是在堆栈上下移动的lldb命令似乎也在向后移动。例如,向下移动将从第1帧移动到第0帧,第0帧是我打断的帧。你知道他们为什么落后吗?或者我为什么落后?还是我遗漏了调用堆栈的一个基本概念?

我总是尝试使用较旧和较新的堆栈框架,因为这反映了实际发生的情况,而不依赖堆栈在内存中增长方向的细节。但我们在命令行中使用上下键,主要是因为gdb就是这么做的,而在我们启动lldb时,大多数人都习惯于使用命令行调试器。

我总是尝试使用术语“较旧的堆栈帧”和“较新的堆栈帧”,因为这反映了实际发生的情况,而不依赖于内存中堆栈增长方向的细节。但是我们在命令行中使用了up和down,这主要是因为gdb就是这么做的,在我们启动lldb时,大多数人都习惯于使用命令行调试器。

感谢您的深入了解。这有助于我进一步深入了解GDB文档。最外层较老的框架有较高的数字,而较年轻的框架有较低的数字,就像一个年龄,真的。上升,实际上是上升1,上升到更高的数字年龄。所以“上/下”指的是帧编号,而不是堆栈的垂直方向。感谢您的深入了解。这有助于我进一步深入了解GDB文档。最外层较老的框架有较高的数字,而较年轻的框架有较低的数字,就像一个年龄,真的。上升,实际上是上升1,上升到更高的数字年龄。因此,“向上/向下”是指帧编号,而不是堆栈的垂直方向。