【发布时间】:2010-07-07 12:06:24
【问题描述】:
我需要一些帮助来检索 Linux 64 位 机器上调用堆栈的指令指针 (RIP)。我可以使用 ptrace 遍历堆栈并检索所有帧/基指针(RBP)值。但是因为我想要 IP 值,所以 RIP 和 RBP 之间的算术和概念关系是什么。 我假设 RIP 值存储在 (RBP + 8) 位置,并且可以使用 ptrace PEEKDATA 读取它。我的假设正确吗?
【问题讨论】:
-
调用栈的布局取决于调用约定和处理器架构。请参阅 en.wikipedia.org/wiki/Call_stack 和 en.wikipedia.org/wiki/Calling_convention。也许 ptrace 将其抽象出来,但我实际上并不知道。
标签: ptrace