记住当程序进行函数调用(特别是针对递归函数)时,它必须在堆栈上存储返回地址和本地变量。
Remember that when a program makes a function call (especially for recursive ones), it has to store its return address and local variables on the stack.
所以该指令会将链接寄存器(存有返回地址)存储到调用函数堆栈框架的恰当位置。
So this instruction stores the link register (which holds the return address) into the proper location in the calling function's stack frame.
计算机引用这一点作为返回地址,会在堆栈框架中跟踪它。
The computer refers to this point as the return address and keeps track of it in the stack frame.
这个参数定义希望获取返回地址的调用堆栈级别。
The argument defines the level of the call stack for which you want to obtain the return address.
LR_OFFSET是返回地址的堆栈框架的偏移量。
LR_OFFSET is the offset into the stack frame of the return address.
每个堆栈框架都有一个指向前一个堆栈框架的指针(称为回链指针),还有一个当它调用其他函数时用于存放返回地址的空间。
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.
这段代码使用trampoline地址替换堆栈上的返回地址——Kretprobe地址。
This code replaces the return address on the stack with the trampoline address-the Kretprobe address.
对于编译器认为容易出现缓冲区溢出问题的函数,编译器将在堆栈上返回地址之前分配空间。
On functions that the compiler recognizes as subject to buffer overrun problems, the compiler allocates space on the stack before the return address.
堆栈是一个后进先出(LIFO)队列,它保存了子例程的返回地址、数据项、指针等等。
The stack is a last-in-first-out (LIFO) queue that holds subroutine return addresses, items of data, Pointers, and so on.
堆栈是一个后进先出(LIFO)队列,它保存了子例程的返回地址、数据项、指针等等。
The stack is a last-in-first-out (LIFO) queue that holds subroutine return addresses, items of data, Pointers, and so on.
应用推荐