当看到lldb中的回溯时,我坐在#0帧上,并试图向下“移动”堆栈,但lldb说:
(lldb) down
error: Already at the bottom of the stack
在我看来,我坐在堆栈的顶部,因为它是最顶层的堆栈帧。即使lldb命令移动up
或down
堆栈似乎也是倒退。例如,向下移动将从帧#1移动到帧#0,帧#0是我打破的帧。任何想法为什么他们倒退?或者为什么我倒退?或者我错过了调用堆栈的基本概念?
答案 0 :(得分:3)
我总是尝试使用术语“较旧”和“较年轻”的堆栈帧,因为这反映了实际上正在发生的事情,而不依赖于方向堆栈的细节恰好在内存中增长。但是我们在命令行中使用了up
和down
,主要是因为这就是gdb所做的,这是大多数人在我们启动lldb时习惯的命令行调试器。