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

时间:2015-11-14 17:21:05

标签: debugging lldb

当看到lldb中的回溯时,我坐在#0帧上,并试图向下“移动”堆栈,但lldb说:

(lldb) down error: Already at the bottom of the stack

在我看来,我坐在堆栈的顶部,因为它是最顶层的堆栈帧。即使lldb命令移动updown堆栈似乎也是倒退。例如,向下移动将从帧#1移动到帧#0,帧#0是我打破的帧。任何想法为什么他们倒退?或者为什么我倒退?或者我错过了调用堆栈的基本概念?

1 个答案:

答案 0 :(得分:3)

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