堆栈指针损坏。
Getting the stack pointer on Linux-x86 can be implemented as.
在Linux - x86平台上的堆栈指针可以实现为。
The setjmpx and longjmpx kernel services maintain the AMR and the context stack pointer.
longjmpx和 frr_add内核服务可以维护AMR 和上下文堆栈指针。
Besides the stack pointer (ESP), what other register points to variables on the stack?
除了栈指针(ESP),还有哪个寄存器指向栈上的变量?
The stack pointer is not used at all in the function and changing its value is meaningless.
堆栈指针根本不能这样使用,改变它的值是无意义的。
So you simply need to move the stack pointer by adding the stack frame size to the stack pointer using ai $sp, $sp, FRAME_SIZE.
所以您只需通过使用ai $sp, $sp, FRAME_SIZE 将堆栈框架大小加到堆栈指针来移动堆栈指针即可。
This makes it easy for functions to know where their activation record is — they are simply defined in terms of the stack pointer.
这对函数了解自己的活动记录在什么地方提供了方便——它们可以使用堆栈指针的形式简单地进行定义。
It depends on the platform ABI; generally either in a designated set of registers or at fixed offsets from a "stack pointer".
这取决于平台abi;通常在一组指定的寄存器或从“堆栈指针”以固定偏移量。
Functions are free to use the 288 bytes that are physically below the stack pointer for functions that do not call other functions.
函数可以自由使用288字节的内存,对于不调用其他函数的函数来说,这段内存物理上在堆栈指针之下。
All subsequent arguments are accessed by adding the size of a dword variable to the stack pointer (that is, esp + 12, esp + 16, and so on).
在堆栈指针上加上双字变量的大小(即esp +12、esp +16等等),就可以访问所有后续参数。
The stack is coordinated with a stack pointer that keeps track of storage and retrieval of each byte or word of information in the stack.
栈和一个栈指针配合工作,栈指针随时指示要存取的每个字或字节信息在栈中的位置。
Dedicated registers are registers that have a predefined, permanent function, like the stack pointer (register 1) and the TOC pointer (register 2).
专用寄存器是那些有预定义的永久功能的寄存器,例如堆栈指针(寄存器1)和TOC指针(寄存器2)。
Since pushing a variable essentially moves the stack pointer by a dword, the stack pointer is adjusted by adding 4 (the size of a dword) to it (line 32).
因为在堆栈中压入一个变量会让堆栈指针移动一个双字,所以给堆栈指针加4(双字的大小)(第32行)。
If a function is executing, then the stack pointer is pointing to the top of the whole stack, which is also the top of that function's activation record.
如果一个函数正在执行,那么堆栈指针就会指向整个堆栈的顶部,这也是该函数活动记录的顶部。
Therefore, functions using the simplified ABI actually can save, use, and restore non-volatile registers by using negative offsets from the stack pointer.
因此,使用简化ABI 的函数实际上可以通过从堆栈指针开始的负偏移量来保存、使用和恢复非易失性寄存器。
The stack is used during a function call to store local arguments. But in the function, the stack pointer may change because values are stored on the stack.
堆栈常常在函数调用中用于存储本地参数,但在函数中,由于存储在堆栈中的值使得堆栈指针的值常常会发生变化。
Initialized which include: adjusted stack pointer, the need to use the internal data memory of the initialization, set up the boot nc power output voltage and CPU interruption of the set.
此中初始化包括:调解堆栈指针、需要使用的内部数据存储器的初始化、设置数控电源的开机输出电压以及CPU中断部分设置。
This simple design, possible because the data obeys strict LIFO order, means that no complex data structure is needed to track stack contents - a simple pointer to the top of the stack will do.
这种简单的设计,很有可能是考虑到数据操作都符合后进先出(LIFO )规则,这意味着访问栈的内容并不需要复杂的数据结构,一个简单的栈顶指针就能搞定一切。
If the CONFIG_FRAME_POINTER option was set during kernel compilation, the frame pointer register is used to maintain stacks and, hence, the stack traceback can be performed correctly.
如果内核编译期间设置了CONFIG_FRAME _ POINTER选项,那么就用帧指针寄存器来维护堆栈,从而就可以正确地执行堆栈回溯。
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).
接下来,当前堆栈框架指针会被存储为指向下一个堆栈框架的后向指针,虽然尚未建立堆栈框架(这是通过负的偏移量实现的)。
Working in conjunction with our stack, we'll have a pointer that identifies our current position in the stack.
与堆栈在一起的还有一个指针,指示我们在堆栈中的当前位置。
This will lead to better stack tracebacks, as the frame pointer register is used as a frame pointer rather than a general purpose register.
这将产生更好的堆栈回溯,因为帧指针寄存器被用作帧指针而不是通用寄存器。
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.
每个堆栈框架都有一个指向前一个堆栈框架的指针(称为回链指针),还有一个当它调用其他函数时用于存放返回地址的空间。
This protects against stack, buffer, and function pointer overflows, all without recompilation.
这样将保护程序代码避免堆栈、缓冲区和函数指针溢出,而且全都不需重新编译。
When clicking the backward and forward buttons for the application, we won't be adding new events to the stack but we will be moving the pointer within the stack.
单击应用程序的后退和前进按钮时,不会在堆栈中添加新的事件,而是移动堆栈的指针。
If you open the application and click around, you'll see our history stack and pointer stored in the browser's cookies.
打开应用程序并单击链接,就会看到存储在浏览器cookie中的历史堆栈和指针。
So, the code loops back, points to the proper top pointer (which was changed because of Thread b), invokes CAS, and is done with pushing 20 into the stack.
因此,代码回到循环的开头,指向正确的top指针(线程b修改后的),调用CAS,把20压入堆栈后结束。
mbackchain and -mno-backchain: These options control whether the address of the caller's frame is stored as so-called "backchain" pointer into the callee's stack frame.
mbackchain和 -mno-backchain:这些选项控制调用方帧的地址是否作为 “backchain”指针存储到被调用方的堆栈帧。
The final item in the stack frame is a pointer to the previous stack frame, often called the back pointer.
堆栈帧中的最后一个条目是一个指向前一堆栈帧的指针,通常被称为后向指针(back pointer)。
The final item in the stack frame is a pointer to the previous stack frame, often called the back pointer.
堆栈帧中的最后一个条目是一个指向前一堆栈帧的指针,通常被称为后向指针(back pointer)。
应用推荐