Toggles the 'frame stack' window, which displays the stack of visible frames under the mouse pointer. (There are also key bindings for this).
切换“窗口堆栈”窗口,该窗口指代当前鼠标指针下的可见窗口。(这个功能也有一些按键绑定)
You might wonder why I check whether the method is static at the start of my parameter size calculation, then initialize the stack frame slot to zero if it is (as opposed to one if it is not).
您可能会奇怪为什么在开始参数大小计算时要检查方法是否是静态的,如果是静态的,将堆栈帧槽初始化为零(不是静态正好相反)。
Notice that since there is nothing left to do in the function, the actual stack frame for the function is not needed either.
注意,由于在函数中不再做任何事情,那个函数的实际的栈结构也就不需要了。
Otherwise, it assumes the provided address as a valid stack frame start address and attempts to traceback.
否则,它假定所提供的地址是有效的堆栈帧起始地址并设法进行回溯。
When a function begins, it actually saves the link register in the calling function's stack frame, not its own, and then only if it needs to save it.
当函数开始时,它实际上会将链接寄存器保存到调用函数的堆栈帧中,而不是自己的堆栈帧中,然后只有在需要时才会保存它。
The most difficult part is determining the different offsets of the different parts of the stack frame, knowing where each piece should go, and what size it should be.
最困难的部分是确定堆栈帧不同部分的不同偏移量,了解每个部分应该放到哪里,以及大小应该是多少。
Since you have not yet defined your own stack frame, the offset is from the end of the calling function's stack frame.
由于您尚未定义自己的堆栈框架,所以偏移量是由调用函数的堆栈框架的末端算起的。
So this instruction stores the link register (which holds the return address) into the proper location in the calling function's stack frame.
所以该指令会将链接寄存器(存有返回地址)存储到调用函数堆栈框架的恰当位置。
References to variables within an expression can then be statically bound to a particular slot in either the local stack frame or the list of global variables.
然后表达式中对变量的引用可以静态绑定到本地堆栈框架或一列全局变量的特定槽上。
Every time a function is called, a new stack frame (an area of memory inside the stack) is used to support the call.
每当调用一个函数,就会使用一个新的堆栈帧来支持该调用。
Since you did not call any functions or use any local storage, you did not need a stack frame at all, so you can now just exit through the link register.
由于未调用任何函数,也未使用任何本地存储,所以您根本无需堆栈框架,并可通过链接寄存器退出。
It displays the stack frame for the suspended threads for each target you're debugging.
它可以显示每个调试目标中挂起线程的堆栈框架。
These will all be used to make access to stack frame offsets much clearer in the main body of code.
上述这些做法目的是使在代码的主体访问堆栈框架变得更为清楚明了。
Therefore, before using a non-volatile register in a function, its value must be saved in the function's stack frame, and then restored before the function returns.
因此,在函数中使用非易失性寄存器之前,它的值必须保存到该函数的堆栈帧中,然后在函数返回之前恢复。
Each stack frame holds a pointer to the previous stack frame (called the back chain pointer), as well as a space for return addresses for when it calls other functions.
每个堆栈框架都有一个指向前一个堆栈框架的指针(称为回链指针),还有一个当它调用其他函数时用于存放返回地址的空间。
Next, the current stack frame pointer is stored as the back pointer for the next stack frame, even though you haven't established the stack frame yet (this is done through negative offsets).
接下来,当前堆栈框架指针会被存储为指向下一个堆栈框架的后向指针,虽然尚未建立堆栈框架(这是通过负的偏移量实现的)。
Remember that the link register is stored in the calling function's stack frame, not the function's own stack frame.
请记住链接寄存器存储在调用函数的堆栈框架内,而非函数自身的堆栈框架。
The computer refers to this point as the return address and keeps track of it in the stack frame.
计算机引用这一点作为返回地址,会在堆栈框架中跟踪它。
Displays the code for the current stack frame, highlighting the line that is about to be executed.
显示当前堆栈框架的代码,突出显示即将执行的代码行。
This will lead to better stack tracebacks, as the frame pointer register is used as a frame pointer rather than a general purpose register.
这将产生更好的堆栈回溯,因为帧指针寄存器被用作帧指针而不是通用寄存器。
This mechanism is used to resolve resource-name conflicts: if two library JAR files define a resource with the same global name, the local names will be used based on the stack-frame of the caller.
用来解析资源名称冲突的机制是:如果两个库jar文件都用相同的全局名称定义一个资源,那么则根据调用程序的堆栈帧来采用局部名称。
You can imagine the power of being able to reconstruct or reverse-engineer what was happening at the time of the dump based on what was happening in each thread stack frame and on which objects.
您可以想象一下,如果能够基于每一个线程堆栈结构及其对象重建或反向工程生成转储文件发生时的状态。
In practice this is easy; just don't write code that does low-level manipulations of the stack frame or makes assumptions about the stack layout.
这在实践上是很容易的;只要不编写对堆栈桢执行低级操作或对堆栈的布局作假设的代码就行了。
The epilogue will be discussed in the analysis of the factorial code, but it basically just takes down the stack frame and returns to the previous function.
该段代码的尾声(epilogue)将在分析factorial 代码时再作讨论,但总的来说,它的作用是结束堆栈框架并返回到先前的函数。
In this program you will have two stack frame sizes — one for main and one for factorial.
在本程序中,需要两个堆栈框架大小——一个用于main,一个用于factorial。
Functions create the stack frame during the beginning of the function (called the function prologue) and tear it down at the end of a function (called the function epilogue).
函数在函数开始过程中(称为函数序言(function prologue))创建堆栈帧,并在函数结束时(称为函数尾声(functionepilogue))销毁它。
Once inside a function, a local stack frame is created by copying esp to ebp (line 62).
在函数内部,通过将esp复制到ebp(第62行)创建一个局部堆栈框架。
The expression is evaluated in the context of the current stack frame, and the results are displayed in the Expressions view of display window.
在当前堆栈框架的上下文中会计算表达式的值,在Display窗口的Expressions视图中会显示结果。
The expression is evaluated in the context of the current stack frame, and the results are displayed in the Expressions view of display window.
在当前堆栈框架的上下文中会计算表达式的值,在Display窗口的Expressions视图中会显示结果。
应用推荐